基础模式
数据库–>数据表–>行(记录):用来描述一共对象的信息
数据库–>数据表–>列(字段):用来描述对象的一个属性
mysql数据库的端口号是3306
在Linux中查看端口号可用:netstat -lntp | grep 3306 来查看
int:整型 无符号[0,2^32-1],有符号[-2^31,2^31-1]
float:单精度浮点 4字节32位
double:双精度浮点 8字节64位
char:固定长度的字符类型
varchar:可变长度的字符类型
text:文本
image:图片
decimal(5,2):5个有效长度数字,小数点后面有2位
登录mysql :mysql -u root -p 密码
root是用户
SHOW DATABASES; #大小写不区分,分号“;”表示结束
use 数据库名; #切换到我们需要去的库中
show table; #查看我们所在库中的所有表
use 数据库名;
describe [数据库名字.] 表名;
可以缩写成:desc表名; #切换到表中
扩展:即使我们不去use 数据库名到我们需要去的数据库中也是可以去看这个库中的表的
只需:use tables from数据库名;
在进行desc 数据库名.表名即可
SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能、
SQL语言分类:
DDL:数据定义语言,用于创建数据库对象,如库、表、索引等
DML:数据操纵语言,用于对表中的数据进行管理
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录
DCL:数据控制语言,用于设置或者更改数据库用户或者角色权限
create database 数据库名; #创建数据库
drop database 数据库名; #删除数据库
因为我们这边是管理员用户所以删库并没有限制,若是普通用户则有限制
create table 表名 (字段1 数据类型,字段2 数据类型[,....][,primary key(主键名)]);
#主键一般选择能代表唯一性的字段,不允许取空值(null),一个表只能有一个主键。
例:
create database banji;
use banji; z#注意,要先切换到库中才可以创建表
create table x38 (id int NOT NULL,name char(10) NOT NULL,score decimal(5,2),passwd char(48) DEFAULT '',paimary key(id));
#这边注意 id字段就是我们所设置的主键,他的后面字段就不可以为空也不可以重复。
#没有指定的字段都为null,即空
desc x38; #查看我们创建的表
例子:
create table x38 (id int, name char(4), age int, sex char(2));
#创建x38表,这里注意,创建表不可以纯数字
drop table x38; #删除表;
如果不在库中删除,那么直接用命令
drop table 数据库名.表名;
这边的话就是:
drop table banji.x38
#即可删除banji库中的x38表
insert into 表名[字段1,字段2,[,....]) values( 字段1的值,字段2的值,...);
例子:
insert into x38 (id,name.score,passwd) values(1,'zhangsan',70.5,password('123456'));
#password('123456'):查询数据记录时,密码字串以加密形式显示:若不使用passwrod(),查询时以明文显示。
insert into x38 values{2,'lisi',90.5654321);
select * from x38;
#查询表所有的数据记录
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
例:
UPDATE KY08 SET passwd=PASSWORD('') WHERE name='zhangsan';
UPDATE KY08 SET name='wangxiaoer',passwd='' WHERE id=3;
DELETE FROM 表名 [WHERE 条件表达式];
例:
DELETE FROM KY08 WHERE id=4; # 删除指定的数据
select 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
例:
SELECT * FROM KY08;
SELECT id,name,score FROM KY08 WHERE id=2;
select name from KY08\G #以列表方式竖向显示
select *from KY08 limit 2; #只显示头2行
select * from KY08 limit 2,3; #显示第2行后的前3行
create database 库名;
use 库名;
create table 表名 (字段1 数据类型, 字段2
数据类型, ... [,primary key (字段)]);
drop table 表名; #删除
drop database 库名;
show databases; #查看表
show tables [from 库名];
desc [库名.]表名; #查看表结构
insert into 表名 values (字段1的值, 字段2的值, ....); #要按照表结构的字段顺序设置值
insert into 表名 (字段1, 字段2, ...) values (字段1的值, 字段2的值, ...);
update 表名 set 字段=值, ... where 条件表达式;
delete from 表名 where 条件表达式; #删除指定的数据
select * from 表名 [where 条件表达式];
select 字段1,字段2,... from 表名 [where 条件表达式];
select * from 表名\G #纵向查看每行记录字段的值
select * from 表名 limit N; #显示表的前N行记录
select * from 表名 limit N,M; #显示表的从第N行之后的连续M行记录(不包含第N行)