mysql

mysql操作流程


登录数据库服务器 
-uroot  -p123456;

查询数据库  
show datebases;

在服务器中创建一个叫test的数据库 
create database test;

选择其中一个数据库比如test    
use test;

选中数据库之后可以查看库中所有的表
show tables;

选中test数据库后,在库中创建一个叫pet的表
CREATE TABLE pet(
    name VARCHAR(20),
    owner VARCHAR(20),
    species VARCHAR(20),
    sex CHAR(1),
    birth DATA,
    death DATA);
#表名:pet   
#数据字段:name owner species sex birth death  
#数据类型:VARCHAR(字符串类型) CHAR(字符串类型) DATA(日期类型)
    
查看pet表中的结构  
describe pet(desc pet);

查询test数据库中的pet表的所有记录  
select * from pet;    
# pet为xxx数据库中的某个表  
# *是查询所有

往pet表中添加数据(增加数据)
INSERT INTO pet VALUES ('Puffball','Diane','hamster','f','1993-10-10','NULL');

删除pet表中的 name = 'Puffball' 的数据
delete from pet where name = 'Puffball';

修改pet表中的数据  将Diane数据中的name改为旺财
update pet set name = '旺财' where owner = 'Diane';

查询pet表中的第几(1)个信息
select * from pet where id=1;  
#pet表中的id这一列数据中的第一个数据

退出数据库  
exit;

常用操作:增删改查


增加数据:insert
insert into xx(表名) values('巴拉','巴拉');

删除数据:delete
delete from xx(表名)where name(第一列表头) = 'xx'(表头下要删除数据的名字)

修改数据:update
update xx(表名) set name(想要修改数据对应的表头) = 'aa'(想要修改的数据) where owner(该数据对应的其他表头)= 'bb'(该表头下对应的数据)
表头    name     owner
数据    aa         bb

查询数据:select
select *(所有文件) from pet(表名)

约束

主键约束:只有一个,不可重复,不可为空(null)		'primary key'就是主键约束

create table user(     			#  创建一个表,名字为user
  id int primary key,    	        #  对id表头进行主键约束
  name varchar(20)   
);
效果:不能重复添加相同id的数据  (primary id)
      name没有约束

insert into user values(1,'张三');  没有问题
insert into user values(1,'张三');报错  id重复

复合主键:多表头进行约束,不能为空也不能全部重复
create table user2(
  id int,
  name varchar(20),
  password varchar(20),   
  primary key(id,name) 			#id,name进行主键约束
);
效果:id和name两个表头只要输入的数据中有一个表头不同就可以成功输入

insert into user2 values(1,'张三','123');
insert into user2 values(2,'张三','123');
id、name中只要有一个不同就可以

insert into user2 values(1,'张三','123');
insert into user2 values(1,'张三','123');
id、name完全一样,则会报错



自增约束:自动生成不重复的数据      'uto_increment'就是自增约束
create table user3(
  id int primary key auto_increment,		# id表头进行主键约束+自增约束
  name varchar(20)
);     
效果:不需要对id表头进行操作就可以自动生成不重复的id数据

insert into user3(name)values('张三');
insert into user3 ( name) values ('张三');
得到下表:
id   name
1    张三
2    张三
自动将id下的数字逐次+1



唯一约束:       约束修饰字段的值不可以重复,可为空    使用'unique'
create table user5(
 id int,
 name varchar(20) unique
);




非空约束:修饰字段不能为空   not null
create table user9(
id int,
name varchar(20) not null); name表头下数据不能为空  否则报错
比如:
insert into user9 (id) values (1);报错,因为name中没有数据   但是!
insert into user9 (name)values ('张三');可行,因为id为null但是name不为空

添加删除 alter modify
alter table user9 add not null(name);
alter table modify name varchar (20) not null;




默认约束:表头下没有输入数据时候的默认参数
                   default
create table user10(
  id int,
  name varchar(20)
  age int default 10      age表头下默认值为10
);

insert into user10 (id,name)values (1,'zs');
select * from user10;  查看表user10下的数据
id  name  age
1   zs         10       未传入age数据,默认值10


外键约束:涉及到两个表:主表/副表或父表/子表
    foreign key(xx) references 表(xx)

班级表是主表
create table classes(
  id int primary key,
  name varchar(20)
);

学生表是副表
create table students(
  id int primary key,
  name varchar(20),
  class_id int,
  foreign key (class_id) references classes(id)

如何给表头添加/删除约束

create table user4(
 id int,                             id表头无主键约束
 name varchar(20)
);
修改user4表,对已有id表头进行主键约束:
alter table user4 add primary key(id);


删除已有表头的主键约束:
alter table user4 drop primary key(id);


使用modify修改字段添加约束:
alter table user4 modify id int primary key;




四种添加约束方式:
alter table user5 add unique(name);
或者直接在create的最后   unique(name)即:
create table user5(
  id int,
  name varchar(20),
  unique(name)
);
再或者直接create时候   name varchar(20) unique;即:
create table user5(
  id int,
  name varchar(20) unique
);
还有modify方式  alter table user5 modify name varchar(20) unique;

同样的复合主键
unique(id,name)    只要表头id和表头name下的数据有一个不同就可以不出错

效果:不能对name表头下的数据重复添加

删除唯一约束:
alter table user5 drop index name;




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值