1.连接数据库
mysql -uroot -p123123 -h127.0.0.1;如果是在本地的mysql上则不需要-h
如果是在cmd中运行的话首先以管理员身份运行cmd,然后输入net start MySQL81(这个是我安装MySQL时起的名字,根据自己的情况来定)
2.创建数据库
create database 数据库名称;
3.查看数据库有哪些
show databases;
4.查看指定的数据库
show create database 数据库名;
5.删除数据库
drop database 数据库名;
6.断开服务器的连接
exit;
或 quit;
7.打开数据库
use 数据库名;
8.MySQL支持的主要数据类型
int 整型
char(n) 定长字符型
varchar(n) 变长字符型
float(m,d) 单精度型,m表示总位数,d表示小数位数
decimal(m,d) 双精度型
date 日期型
9.查看表的结构
describe 表名; 或简写 desc 表名;
10.查看这个数据库中有哪些表
show tables;
11.查看创建的详细信息
show create table 表名;
12.删除表
drop table 表名;
13.查看目前数据库有哪些
show databases;
14.没有MyDb数据库,则创建
create database MyDb;
15.打开数据库
use 数据库名;
16.查看这个数据库中有哪些表
show tables;
17.查看创建的详细信息
show create table 表名;
18.删除表
drop table 表名;
19.创建表
create table 表名
(
字段名 数据类型 [列级约束],
字段名 数据类型 [列级约束] ,
…
foreign key 本表中的字段名 references 父表名(字段名且是父表的主键), //表级约束
[foreign key 本表中的字段名 references 父表名(字段名),]
[constraint 约束名 foreign key 本表中的字段名 references 父表名(字段名)]
);
20.常见约束类型
(1)primart key 主键约束
(2)foreign key 外键约束
(3)unique 唯一约束 ,取值不能重复,但允许有一个为空
(4)null 为空约束(系统默认的)
(5)not null 非空约束
(6)default 值 默认约束,给定字段一个默认值,添加字符串型默认值要使用单引号,表示为’值’,
如果是整型则不需要加任何符号; 如果要添加的是中文默认值,则需要加上
DEFAULT CHARSET=utf8;使用英文字符则不需要。
(7)auto_increment 自增约束,默认情况下初始值和增量都为1。
21. 修改已有表的名字(属于修改表结构的一种操作,都是SQL的定义语言实现的)
alter table 表名 旧的表名 rename [to] 新的表名;
22.查看某一个表创建的详细信息(包括创建代码、存储引擎和字符集等)
show create table 表名;
若想让显示结果更有条理 show create table 表名 \g
-
修改已有表的字段名(数据类型必须跟在新字段名的后面,数据类型可改可不改)
alter table 表名 change 旧的字段名 新字段名 新数据类型; -
修改字段数据类型(字段名保持不变,"改"的单词变成了"modify”)
alter table 表名 modify 字段名 新数据类型;
25.添加字段(在表的最后一列添加字段,默认的)
alter table 表名 add 字段名 字段类型 [约束类型];
26.添加字段(在表的第一列添加字段)
alter table 表名 add 字段名 字段类型 [约束类型] first;
27.添加字段(在表的指定列后添加字段)
alter table 表名 add 字段名 字段类型 [约束类型] after 指定的已存在字段名;
28.删除字段
alter table 表名 drop 字段名;
29.修改字段为表的第一字段(modify)
alter table 表名 modify 字段名 字段类型 first;
30.修改字段到表的指定列之后(modify)
alter table 表名 modify 字段名 字段类型 after 指定字段名;
31.删除子表中的外键约束(外键约束必须要有约束名字)
alter table 表名 drop foreign key 约束名;
- 为表的所有字段插入数据(一次只能给一个表插入n行数据)
insert into 表名[(字段名1,字段名2,…)]
values(字段1的值,字段2的值,…) , (字段1的值,字段2的值,…) ,…
注意:(1)字段名列表如果列出的是全部字段,可以省略不写;
也可以指定其中的某些字段名插入值,这时字段名不能省略。
(2)字段值的顺序要与字段名的顺序一致;
(3)字段值为常量,不同数据类型的常量写法不一样,
数值型的直接写,字符型的要加单引号。
(4)一次插入多行值时,值列表之间用逗号隔开
33.查看数据是否成功插入表中
select * from 表名;
- 更新数据(一次只能更新一个表中的所有行的一列值)
update 表名
set 字段名1=它的新值;
35.更新数据(一次只能更新一个表中的所有行的多列值)
update 表名
set 字段名1=它的新值,字段名2=它的新值,…;
36.更新数据(一次只能更新一个表中的指定行的1列或多列值)
update 表名
set 字段名1=它的新值[,字段名2=它的新值,…]
where 条件表达式;
37.删除表中的指定行
delete from 表名 where 条件表达式;
注意:(1)delete是整行的删除,不能删除一行中的某1个或几个列值。
(2)若要删除一行中的某个值,可以使用update。
38.删除表中的所有行
delete from 表名;
39.删除表中的某一列(属性) alter table 表名 drop 列名;
40.给表添加一个属性 alter table 表名 add 属性名 属性类型 指定的位置(例如第一行:first,在某一属性后面 after 指定属性)
41.查看创建表时写的命令:show create table 表名;
42.删除表的主键,首先删除与主表有关联的子表的外键:alter table 子表名 drop foreign key 外键名(外键名解释:就是添加外键时给外键起的名字 constiraint 名称);然后再删除主表的主键约束:alter table 表名 drop primary key;
43.给已创建好的表中属性添加主键:alter table 表名 add primary key(属性名);
44.给已创建好的表中属性添加外键:alter table 表名 add constraint 外键名 forrign key(本表中需要添加外键的属性名) references 主表名(外键所依赖的主表的属性名)
45.关于子查询的插入数据:例如:stu_avg这个表已经建好但是还没有数据现在将sc表中的学号,与平均分导入这个表过程:insert into stu_avg
select sno,avg(grade)
from sc
group by sno;