常用命令
数据库命令除登陆外,最后结尾都带有分号,不要忘记!!!
常用命令 | 命令详解(黄色部分根据实际环境更改) |
---|---|
mysql -u 用户名 -p | 登录数据库 |
quit; exit; | 退出数据库 |
create database 数据库名 | 创建数据库 |
drop datebase 数据库名 | 删除数据库 |
show databases; | 显示数据库 |
use 数据库名称 | 打开数据库 |
create table 表名(字段 类型 约束[,字段 类型 约束]) | 创建数据表 |
select database(); | 显示当前使用的数据库 |
drop table 表名 | 删除数据表 |
show tables; | 显示打开的数据库中的表 |
desc 表名; | 查看数据表的结构 |
select * from 表名; | 查询、显示数据表中的所有数据 |
insert into 表名 values (字段 类型 约束) | 向数据表中插入数据,例:insert into classes calues(0,‘mysql数据库’) |
insert into 表名(列1,列2) values(值1,值2); | 根据列名部分插入 |
insert into 表名(列1,列2) values(值1,值2),(值3,值4); | 根据列名部分多行插入 |
alter table 表名 add 字段 类型 约束; | 添加数据表字段,例:alert table students add birthday date; |
alter table 表名 modify 字段 类型 约束 | 更改表字段(不重命名)例:alert table students modify birthday date default ‘1970-01-01’; |
alert table 表名 change 原名 更改的名 字段 类型 约束 | 更改表字段(重命名)例:alert table students change birthday birth date default ‘1970-01-01’; |
alert table 表名 drop 列名; | 删除表中的列 |
update 表名 set 列名 = 值 | 更新数据表中某一列的值 |
update 表名 set 列名 = 值 where=条件; | 更新数据表中符合条件的对应列的值 |
delete from 表名 where 列名 = 值; | 将数据表中某列的符合条件的数据删除(不推荐使用,可添加is_delete字段表名数据是否在使用例:alert table students add is_delete in default 0; update students set is_delete=1 where id =6;) |
select distinct 字段[as 字段名] from 表名; | 数据表按字段去重显示,as为将字段显示为别名 |
select * from 表名 where 字段 between 值1 and 值2 and 值3; | 查询数据表中符合条件的数据,例:select * from students where age between 18 and 26 and gender =1;查询students数据表中年龄在18到26岁之间的男性; |
select * from 表名 where 字段 between 值1 and 值2 and 值3 order by 值4 asc; | 查询数据表中符合条件的数据,并按照值4从小到大显示,例:select * from students where age between 18 and 26 and gender =1 order by age asc;查询students数据表中年龄在18到26岁之间的男性,并按年龄从小到大显示; desc为从大到小排列 |
mysqldump -u 用户名 -p 数据库名>导出的文件名.sql; | 备份数据库 注:该命令不能在MySQL内执行,要退出MySQL,在终端窗口命令行下执行。 |
数据类型
1.TEXT类型
数据类型 | 描述 |
---|---|
char(size) | 保存固定长度的字符串(可包含字母、数字及特殊字符)。在括号中指定字符串的长度,最多255个字符。 |
varchar(size) | 保存可变长度的字符串(可包含字母、数字及特殊字符)。在括号中指定字符串的长度,最多255个字符。超过255的长度,则被转换为TEXT类型。 |
tinytext | 存放最大长度为255个字符的字符串 |
text | 存放最大长度为65535个字符的字符串 |
blob | 用于blobs(Binary Large OBjects),存放最多65535字节的数据。 |
mediumtext | 存放最大长度为16777215个字符的字符串 |
mediumblob | 用于blobs(Binary Large OBjects),存放最多16777215字节的数据。 |
longtext | 存放最大长度为4294967295个字符的字符串 |
longlob | 用于blobs(Binary Large OBjects),存放最多4294967295字节的数据。 |
enum(x,y,z,etc.) | 允许你输入可能值的列表,可以在enum列表中列出最大65535个值,如果列表中不存在插入的值,则插入空值。 |
set | 与enum类似,set最多只能包含64个列表项,不过set可存储一个以上的值。 |
2.Number类型
数据类型 | 描述 |
---|---|
tinyint(size) | -128到127常规,0~255无符合*,在括号中规定最大位数。 |
smallint(size) | -32768到32767常规。0到65535无符号*在括号中规定最大位数。 |
mediumint(size) | -8388608到838607普通。0to16777215无符号*。在括号中规定最大位数。 |
int(size) | -2147483648到2147483647常规0到4294967295无符号*。在括号中规定最大位数 |
bigint(size) | -9223372036854775808到922372036854775807常规0到18446744073709551615无符号*在括号中规定最大位数 |
float(size,d) | 带有浮动小数点的小数字。在括号中规定最大位数。在d参数中规定小数点右侧的最大位数。 |
double(size,d) | 带有浮动小数点的大数字。在括号中规定最大位数。在d参数中规定小数点右侧的最大位数。 |
decimal(size,d) | 作为字符串存储 DOUBLE类型,允许固定的小数点 |
3.Date类型
数据类型 | 描述 |
---|---|
DATE() | 日期格式:yy-mm-dd 支持的范围是从1000-01-01到9999-12-31 |
DATETIME() | 日期和时间的组合。格式:yyyy-mm-ddhh:mm:ss 支持的范围是从1000-01-0100:00:00到9999-12-3123:59:59 |
TIMESTAMP() | *时间截 TIMESTAMP值使用Unix纪元1970-01-0100:00:00Uc)至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS 支持的范围是从1970-01-0100:00:01utc到2038-01-0903:14:07utc |
Time() | 时间,格式:HH:MM:SS 支持的范围是从-838:59:59到838:59:59 |
YEAR() | 2位或4位格式的年 4位格式所允许的值:1901到2155。2位格式所允许的值:70到69,表示从1970到2069 |
约束条件
类型 | 描述 |
---|---|
主键约束 | primary key |
非空约束 | not null |
唯一约束 | unique |
检查性约束 | check (字段名 in (一个合法范围)) |
在创建数据表时,约束条件非必填项
创建数据表示例:create table demo(
id int,
name varchar(),
phone varchar()
);
最后一条字段后没有分号
1.连接查询 inner join … on
例1:select * from students inner join classes on students.cls_id = classes.id;
查询 有对应班级的学生以及班级信息
例2:select students.name,classes.name from students inner join classes on students.cls_id = classes.id;
按照要求显示姓名,班级
例3:select s.name,c.name from students as s inner join classes as c on s.cls_id = c.id;
给数据表起名字
例4:select s.*,c.name from students as s inner join classes as c on s.cls_id = c.id;
查询有对应班级的学生及班级信息,显示学生的所有信息,只显示班级名称
2.子查询
例1:select * from students where height =(select max(height) form students and gender=1);
查询最高的男生信息
3.更新数据
例:update students set name=‘老王’ where id=5;