mysql基础语法实例
程序员文章站
2022-03-24 09:46:42
--测试自增长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