1.登入数据库命令
mysql -uroot -p+密码
2.查询数据库服务器中的所有的数据库
show databases;
7.查询数据库中有哪些数据表
show tables;
3.选中某个数据库操作
select * from admin;—没选中
use sushe(数据源标识)—选中
<---------------接着操作-------------------->
4.SQL 语句中的查询(数据库中的数据)
select * from admin;
//查询其中的一条数据
select * from admin where 表名=对应的值;
5.退出数据库服务器
exit;
6.如何创建数据库
create database 数据库名;
删除数据库----drop database 数据库名
8.如何创建一个数据表
//长度可写可不写
CREATE TABLE 表名(
属性名 属性(长度) ,
name VARCHAR(20) ,
sex CHAR(1)
);
9.查看创建好的数据表结构
describe 表名;
11.如何查询表中的记录
select * from 表名;
10.如何往数据表中添加数据记录
INSERT INTO 数据表名 VALUES(‘Puffball’,‘f’,null);//()内是相应的 属性及属性值
- 如何删除表中数据
delete from 表名 where 属性=‘对应值’;
13.如何修改表中数据
//修改表中的name值
语法:update 表名 set 属性=‘修改后的值’ where 属性=‘对应值’(定位要修改的数据 那一栏);
eg:update pet set name=‘旺旺财’ where owner=‘周星驰’;
<------------------约束------------------------->
1.主键约束–primary key
能够唯一确定一张表中的一条记录,也就是我们通过给某个字段(属性)添加约束,就可以使得改字段(属性)不重复且不为空
create table user(
id int primary key,
name varchar(20)
);
联合主键:给两个字段(属性)添加主键
只要联合的主键值加起来不重复就可以
create table user2(
id int,
name varchar(20),
password varchar(20),
primary key(id , name),
);
主键约束-建表后添加与删除
create table user4(
id int ,
name varchar(20)
); //建表后发现,没有主键约束
添加主键约束
alter table user4 add primary key(id); //alter table定位到哪个表,add添加,primary key(id)给id添加主键约束
删除主键约束
alter table user4 drop primary key; //drop删除主键约束
修改主键约束
alter table user4 modify id int primary key; //modify修改主键约束,id int 要修改的主键约束的属性(字段)+某某约束
2.自增约束
创建表
create table user3(
id int primary key auto_increment,
name varchar(20)
);
添加数据
insert into user3(name) value(‘zhangsan’);
查询数据表
select * from user3;
结果
id name
1 zhangsan
说明,添加数据(没有id值)时自增约束自动给你添加id值
3.外键约束(相对复杂)–foreign
涉及到两个表:父表,子表
主表,副表
班级表
create table classes(
id int primary key ,
name varchar(20)
);
学生表
create table studer(
id int primary key ,
name varchar(20) ,
class_id int ,
foreign key(class_id) references classes(id) //说明:class_id值来自classes里的id值
);
插入数据
insert into classes value(1 , ‘一班’);
insert into classes value(2 , ‘二班’);
insert into classes value(3 , ‘三班’);
insert into classes value(4 , ‘四班’);
insert into studer value(1001 ,'张三' ,1);
insert into studer value(1002 ,'张三' ,2);
insert into studer value(1003 ,'张三' ,3);
insert into studer value(1004 ,'张三' ,4);
结果---插入数据成功
如果插入一条这样的数据
insert into studer value(1005 ,'李四' ,5);
结果--是不成功的
原因--因为外键约束的原因,在子表中不能插入数据不符主表的数据
总结:主表classes中没有的数据值,在副表中是不可以使用
主表中的记录被副表引用,是不可以被删除的
eg:
delete from classes where id=4;
删除失败;此数据studer被副表引用
4.唯一约束–unique
约束修饰的字段(属性)的值不可以重复
两个唯一约束的字段(属性)值在一起不重复就行
create table user5(
id int ,
name varchar(20)
);
添加唯一约束
alter table user5 add unique(name); / alter table user5 modify name varchar(20) unique;变相添加唯一约束,本质是修改约束
添加数据
insert into user5 value(1, ‘zhangsna’);
insert into user5 value(2, ‘shangsan’);
结果–添加失败
说明,name有唯一约束,所以name的值不能重复
删除唯一约束
alter table user5 drop index name;
总结,1.见表的时候就添加约束
2.可以使用alter。。。add。。。
3.alter 。。。modify。。。
4.删除 alter。。。drop。。。
5.非空约束–not_null
修饰的字段(属性)不能为空null
create table user6(
id int ,
name varchar(20) not null
);
6.默认约束–default
就是我们插入字段值的时候,如果没有传值,就会使用默认值
create table user10(
id int ,
name varchar(20) ,
age int default 10 // 10为默认值
);
插入数据
insert into user10(id , name) value(1 , ‘shangsan’);
此时没有插入age的值,所以默认约束自动添加默认值10
7.check约束--------------------CHECK 约束是指约束表中某一个或者某些列中可接受的数据 值或者数据格式。
例如,可以要求 authors 表的 postcode 列只允许输入六 位数字的邮政编码
约束格式://约束分数在0-100
CREATE TABLE 成绩信息(
成绩编号 int NOT NULL PRIMARY KEY,
学生编号 varchar(50) NOT NULL,
考试编号 varchar(10) NOT NULL,
课程编号 varchar(10) NOT NULL,
分数 varchar(10) NOT NULL CHECK (分数 between 0 and 100)
);
CHECK 约束可以应用于一个或者多个列,也可以将多个CHECK 约束应用于一个列
<-----------------------------------数据库的三大设计范式.sql------------------------------------------------------>
1.第一设计范式–1NF
数据表中的所有字段都是不可以继续分割的原子值–第一范式
create table studer1(
id int primary key ,
name varchar(20) ,
address varchar(30)
);
插入数据
insert into studer2 value(1 ,‘张三’ ,‘中国四川省成都市武侯区武侯大道100号’);
insert into studer2 value(2 ,‘李四’ ,‘中国四川省成都市武侯区京城大道200号’);
insert into studer2 value(3 ,‘码子’ ,‘中国四川省成都市高新区天府大道90号’);
字段值还可以继续拆分的,就不满足第一范式;(eg:中国四川省成都市武侯区京城大道200号)
范式,设计的越详细,对于某些实际操作可能更好,但是不一定都是好处。
2.第二范式–2NF
必须是满足第一范式的前提下,第二范式要求,除主键外的每一列都必须完全依赖与主键
如果要出现不完全依赖,只能发生在联合主键的情况下。
订单表
create table myorder(
product_id int ,
customer_id int ,
product_name varchar(20) ,
custer_name varchar(20) ,
primary key(product_id ,customer_id)
);
第二范式:除主键以外的其他列,必须完全依赖主键
问题–除主键以外的其他列,只依赖与主键的部分字段
解决–拆表
create table myorder(
order_id int primary key , //订单id
product_id int ,
customer_id int
);
create table product(
id int primary key ,
name varchar(20)
);
create table customer(
id int primary key ,
name varchar(20)
);
分成三个表之后,就满足了第二范式的设计
3.第二范式–3NF
必须先满足第二范式,除开主键列的其他列之间不能有传递依赖关系
create table myorder(
order_id int primary key , //订单id
product_id int ,
customer_id int ,
customer_phone varchar(15)
);
问题–除开主键列的其他列之间有传递依赖关系
解决–拆表
create table myorder(
order_id int primary key , //订单id
product_id int ,
customer_id int
);
create table customer(
id int primary key ,
name varchar(20) ,
customer_phone varchar(15)
);
7万+

被折叠的 条评论
为什么被折叠?



