连接数据库,表和数据库
连接
mysql -u名字 -h密码 -h服务器
建库
create database 数据库;
使用库
use 数据库;
建表
create table 表(),
删除表
drop table 表,
主键和外键
一般
id int peimary key,
联合
primary key(id,name)
外键
外键字段 int,
constraint 外键名 foreign key(字段名) references 主表名(主键名)
外键就是另一张表中的主键。
问:外键有啥用啊?
答:外键的主要作用就是保持数据的一致性,完整性。
再问:怎么保证的呢?
答:看图。
如图有两张表,classId 是T_Student的外键,是T_class 表的主键, 如果我们要删除T_class 表中classId为1的字段,程序是会报错的,因为t_student表中有数据和classId为1的字段关联了,是不能删除的,这样子就保证了数据的一致性和完整性。
继续问:那怎么才能删除呢?
接着答:需要先删除T__student表中classId为1的两个字段。
create table t_student(
-> id int primary key,
-> name varchar(22),
-> constraint fk_stu_class1 foreign key(calssId) references t_class(id));
约束
1.唯一约束
unique
2.自动增加
AUTO_INCREMENT(增加1)
3.非空
name VARCHAR(22) NOT NULL,
4.默认
sex VARCHAR(2) DEFAULT '男'
DEFAULT CHARSET=utf8;(表末,括号后,分号前)
注意:中文默认值,则需要加上DEFAULT CHARSET=utf8;
查看表
查看表结构
DESCRIBE 表;
查检表时间,引擎,编码等
SHOW CREATE 表;(/G可以排版)
改表名
ALTER TABLE 旧表 RENAME 新表;
改字段
改字段名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型(不能空);
改字段属性
ALTER TABLE 表名 MODIFY 字段名 数据类型(不能空);
添加字段
最后一列
ALTER TABLE 表名 ADD 字段 属性;
第一列
ALTER TABLE 表名 ADD 字段 属性 FIRST;
指定列后
ALTER TABLE xx ADD 字段 属性 AFTER 字段;
删除字段
ALTER TABLE 表名 DROP 字段:
修改字段顺序
移到顶部
ALTER TABLE 表 MODIFY 字段 属性 FIRST;
移到某个字段后面
ALTER TABLE 表 MODIFY 字段 属性 AFTER 字段(无属性了);
删除外键
ALTER TABLE 表 DROP FOREIGN KEY 外键;
插入数据
insert into t_emp(Id,Name,DeptId,Salary)
values
(1,'Nancy',301,2300.00),
(2,'Tod',303,5600.00),
(3,'Carly',301,3200.00);
更新数据
update tb_emp
set Name="Tracy",DeptID=302,Salary=4300
where Id=3;
删除数据/表
数据
DELETE FROM Mall_products2
WHERE id=2 OR id=3;
表
DELETE FROM 表名;
单表查询
查全表
select * from tb_emp;
查询某个
select Name,Salary from tb_emp
在什么什么之间
where Salary BETWEEN 3000 and 5000;
除了
where Id not in(1);
模糊查询
where Name like"C%"
非空
where DeptID is null;
去重
and
SELECT DISTINCT Name FROM tb_emp;
in()=or
where DeptId in(301,303)=301 or 303
排序
降序
order by score desc;
升序
decs
group by(按照字段数据出现的第一条)
group by
limit(一定要写在最后)
select * from tb_score order by score desc limit 1,4 ;