欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql基础语法实例

程序员文章站 2022-06-26 08:07:09
--测试自增长AUTO_INCREMENT--AUTO_INCREMENT需要搭配主键使用CREATE TABLE IF NOT EXISTS user5(id SMALLINT KEY AUTO_INCREMENT,username varchar(20));insert user5 values(1,'king');insert user5(username) values('queen');select * from user5;insert user5 values(111...

自增长AUTO_INCREMENT

–测试自增长AUTO_INCREMENT
–AUTO_INCREMENT需要搭配主键使用


CREATE TABLE IF NOT EXISTS user5(
id SMALLINT KEY AUTO_INCREMENT,
username varchar(20)
);

insert user5 values(1,'king');
insert user5(username) values('queen');



insert user5 values(111,'king1');


insert user5(username) values('queen1');


insert user5 values(null,'aaaa');
insert user5 values(default,'aaaa');


CREATE TABLE IF NOT EXISTS user6(
id SMALLINT KEY AUTO_INCREMENT,
username varchar(20)
)AUTO_INCREMENT=100;
--只增加username,id不管
insert user6(username) values('queen1');
--更改自增长其实值
alter table user6 auto_increment=1000;
insert user6(username) values('queen1');

非空约束

--测试 NOT NULL
CREATE TABLE IF NOT EXISTS user7(
id INT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
password CHAR(32) NOT NULL,
age TINYINT UNSIGNED
);

DESC user7;

INSERT user7(username,password) VALUES('KING','KING');
SELECT * FROM user7;
INSERT user7(username,password) VALUES(null,null);

默认值

CREATE TABLE IF NOT EXISTS user8(
id INT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
password CHAR(32) NOT NULL,
age TINYINT UNSIGNED DEFAULT 18,
addr VARCHAR(50) NOT NULL DEFAULT '北京',
sex ENUM('男','女','保密') NOT NULL DEFAULT '男'


insert user8(username,password) values('king','king');

insert user8 values(2,'queen','queen',29,'上海','保密');
insert user8 values(3,'queen','queen',default,default,'保密');




);

唯一性约束

create table if not exists user9(
id tinyint unsigned key auto_increment,
username varchar(20) not null unique,
card char(18) unique
);

show create table user9;

insert user9(username) values('a');
insert user9(username) values('a2');

insert user9(username,card) values('b1',null);
insert user9(username,card) values('b2',null);

约束条件的总结

create table [if not exists] tbl_name(
字段名称 字段类型 [unsigned|zerofill] [not null] [default 默认值] [[primary] key]|unique[key]][auto_increment]
)engine=innodb charset=utf8 auto_increment=100;

修改操作


--创建表
create table if not exists user10(
id smallint unsigned key auto_increment,
username varchar(20) not null unique key,
password char(20) not null,
email varCHAR(50) not null default '693244464@qq.com',
age tinyint unsigned default 18,
sex enum('男','女','保密'),
addr varchar(200) not null default '北京',
salary float(6,2),
regtime int unsigned,
face char(100) not null default 'default.jpg'



---修改表名

alter table tbl_name rename[to|as] new_name

alter table user10 rename to user11;
alter table user11 rename as user10;
alter table user10 rename user11;
rename table user11 to user10;

--添加字段
alter table tbl_name add 字段名称 字段类型[完整性约束条件] [first|after 字段名称]
alter table user10 add card char(18);
alter table user10 add test1 varchar(100) not null unique key;
alter table user10 add test2 varchar(20) not null first;

alter table user10 add test3 int not null default 100 after password;

--一词添加多个操作
alter table user10 

add test4 int not null default 123 after password,
add test5 float(6,1) first,
add test6 set('a','b','c');

--删除字段
--alter table tbl_name drop 字段名称
alter table user10 drop test6;
alter table user10 drop test1;
--删除多个字段
alter table user10 
drop test2,

drop test3,
drop test4,
drop test5;
--添加test字符段产出addr字段,后面一定要空格,这里要特别注意
alter table user10  
add test int unsigned not null default 10 after sex,
drop addr;




--修改字段属性位置MODIFY,但是不能够修改字段的名称
--alter table tbl_name modify 字段名称 字段类型[完整性约束条件] [first|after 字段名称]
alter table user10 modify email varchar(200);
alter table user10 modify email varchar(50) not null default '693244464@qq.com';
alter table user10 modify card char(18) after test;
alter table user10 modify test char(32) not null default '123' first;


--修改字段名称 alter table tbl_name change 旧字段名称 新字段名称 字段类型[完整性 约束条件] [first|after 字段名称]  CHANGE

alter table user10 change test test1 char(32) not null default '123';
alter table user10 change test1 test char(200) not null default '123' after username;
alter table user10 change test test int; #等同于modify

--添加默认值
--alter table tbl_name ater 字段名称 set default 默认值

create table if not exists user11(
id tinyint unsigned key auto_increment,
username varchar(20) not null unique key,
age tinyint unsigned
);

alter table user11 alter age set default 18;

alter table user11  add email varchar(50);

alter table user11 alter email set default '1@qq.com';


--删除默认值

alter table user11 alter age drop default;

alter table user11 alter email drop default;

--添加主键

--alter table tbl_name add [constraint[symbol]]] primary key[index_type](字段名称,.....)
create table if not exists user12 (
id int
);
alter table user12 add primary key(id);

create table if not exists user13 (
id int,

card char(18),
username varchar(20) not null
);

--添加复合主键
alter table user13 add primary key(id,card);
--删除主键
alter table user12 drop primary key;
alter table user13 drop primary key;

alter table user12 add constraint symbol primary key index_type(id);
create table if not exists test14(
id int unsigned key auto_increment
);
-先删除自增长,才能删除主键
alter table test14 modify id int;
alter table test14 drop primary key;



添加唯一性约束;

--alter table tbl_name add [constraint[symbol]] unique [index|key] [索引名称](字段名称,.....)

删除唯一性约束
--alter table tbl_name drop {index|key} index_name

--修改存储引擎
alter table user13 engine=myisam;
--修改自增长
alter table user13 auto_increment=100;

删除表操作

drop table [if exists] tbl_name
drop table if exists user12;

drop table if exists user11,user10,user9;
drop table if exists user8,user7,user6,user123;

本文地址:https://blog.csdn.net/alan6629076/article/details/112555195