创建数据库
create database if not exists mydb;
查看mySQL服务器中所有数据库
show databases;
示例:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| keai |
| kenvie |
| mydb |
| mysql |
| performance_schema |
| sys |
+--------------------+
7 rows in set (0.00 sec)
创建表并设置字符格式为utf8
use mydb;
#create table 表名 (第一个字段 数据类型 字段属性);
create table kenvie (id int comment '编号',name varchar(32) comment '商品名称',price int comment '商品价格',des varchar(255) comment '商品描述')character set utf8;
查看数据表
#查看全部数据表
show tables;
示例:
mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| kenvie |
+----------------+
1 row in set (0.01 sec)
#查看名称中带有ken的数据表
show tables like '%ken%';
示例:
mysql> show tables like '%ken%';
+------------------------+
| Tables_in_mydb (%ken%) |
+------------------------+
| kenvie |
+------------------------+
1 row in set (0.00 sec)
修改数据表名称
#rename table 旧表名 to 新表名;
rename table keaicool to keai;
#alter table 旧表名 rename to 新表名;
alter table keaicool rename to keai;
在表中添加数据
#添加一行数据
#INSERT INTO 表名 VALUES ('第一个字段','第二个字段','第三个字段','第四个字段');
INSERT INTO kenvie VALUES ('1','华硕','7999','坚如磐石');
#添加部分数据
#insert into 表名 (字段名,字段名)values (数据,数据);
insert into kenvie (id,name) values ('2','华为');
#insert into 表名 set 字段名=数据,字段名=数据;
insert into kenvie set id=3,name='联想';
#添加多行数据
insert into 表名 values ('第一个字段','第二个字段','第三个字段','第四个字段'),('第一个字段','第二个字段','第三个字段','第四个字段');
insert into kenvie values (4,'游匣','7888','不知道1'),(5,'联想','8399','');
查看数据表结构详细信息
show full columns from kenvie;
示例:
mysql> show full columns from kenvie;
+-------+--------------+--------------------+------+-----+---------+-------+---------------------------------+----------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-------+--------------+--------------------+------+-----+---------+-------+---------------------------------+----------+
| id | int | NULL | YES | | NULL | | select,insert,update,references | 编号 |
| name | varchar(32) | utf8mb4_0900_ai_ci | YES | | NULL | | select,insert,update,references | 商品名称 |
| price | int | NULL | YES | | NULL | | select,insert,update,references | 商品价格 |
| des | varchar(255) | utf8mb4_0900_ai_ci | YES | | NULL | | select,insert,update,references | 商品描述 |
+-------+--------------+--------------------+------+-----+---------+-------+---------------------------------+----------+
4 rows in set (0.00 sec)
查看数据表字段结构
#desc 表名;
DESC kenvie;
示例:
mysql> desc kenvie;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(32) | YES | | NULL | |
| price | int | YES | | NULL | |
| des | varchar(255) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
修改字段结构
#修改字段名
#alter table 表名 change 旧字段名 新字段名 字段类型;
alter table kenvie change price pri int;
#修改字段类型
#alter table 表名 modify 字段名 新字段类型;
alter table kenvie modify pri varchar(8);
新增字段并指定位置
#alter table 表名 add 新字段名 字段名 after 字段名;
alter table kenvie add num int after name;
删除字段
#alter table 数据库名 drop 字段名;
alter table kenvie drop num;
修改字段位置
#alter table 表名 modify 字段名 字段类型 after 字段名; --first
alter table kenvie modify pri varchar(8) after des;
查看表中数据
#查看表中全部数据
#select 字段 from 表名;
select * from kenvie;
示例:
mysql> select * from kenvie;
+------+------+-------+----------+
| id | name | price | des |
+------+------+-------+----------+
| 1 | 华硕 | 7999 | 坚如磐石 |
| 2 | 华为 | NULL | NULL |
| 3 | 联想 | NULL | NULL |
| 4 | 游匣 | 7888 | 不知道1 |
| 5 | 联想 | 8399 | |
+------+------+-------+----------+
5 rows in set (0.00 sec)
#查看表中部分数据
#select 字段 from 表名 where 字段名=数据;
select * from kenvie where id=1;
示例:
mysql> select * from kenvie where id=1;
+------+------+-------+----------+
| id | name | price | des |
+------+------+-------+----------+
| 1 | 华硕 | 7999 | 坚如磐石 |
+------+------+-------+----------+
1 row in set (0.00 sec)
修改表中数据
#将第一行的价格修改为8888
update keai set price=8888 where id=1;
#删除第一行
delete from keai where id=3;
让设置字段中文
#select 字段名 '替换中文',字段名 '替换中文' from 数据表名;
select name '姓名',age '年龄' from my_yueshu;
约束
默认约束
#设置默认值
create table my_yueshu (name varchar (32),age int unsigned default 18);
#alter table 数据表名 modify 字段名 字段类型 unsigned default 默认值;
alter table my_yueshu modify age int unsigned default 18;
#取消默认值
#alter table 数据表名 modify 字段名 字段类型 unsigned;
alter table my_yueshu modify age int unsigned;
非空约束
#not null 不能为空
create table not_null(n1 int,n2 int not null,n3 int not null default 18);
唯一约束
#创建唯一性数据表uni
create table uni(id int unsigned unique,username varchar(50));
#插入一行数据
insert into uni (id, username)values (1,'王');
#再插入一个id同样为1的一行数据
insert into uni (id, username)values (1,'李');
#这时就报错,因为id这个字段有唯一性,1用过以后就不能用了
#把1改成2再插入试试
insert into uni (id, username)values (2,'李');
#这时就插入成功
主键约束
create table kenvie (id int primary key ,name varchar(32));
desc kenvie;
insert into kenvie values (1,'牛'); //填入一行数据
insert into kenvie values (1,'马'); //再填入1就报错
insert into kenvie values (null,'马'); //填入空也报错
alter table kenvie drop primary key ; //删除主键约束
alter table kenvie add primary key(id) ; //添加主键约束
alter table kenvie modify id int; //删除非空约束
自动增长
create table my_auto (id int primary key auto_increment,name varchar(32));
desc my_auto;
insert into my_auto (name) values ('kenvie'); //给name字段填入kenvie
insert into my_auto values (null,'keai'); //第二行id字段填入null,name字段填入keai
insert into my_auto values (6,'keaiai'); //第三行id字段填入6,name字段填入keaiai
insert into my_auto values (0,'ddd'); //第四行id字段填入0,mysql会忽略该值,使用增长值,所以这行插入结果是7
alter table my_auto AUTO_INCREMENT = 10; #修改自动增长值下次为10
insert into my_auto (name) values ('keaiiii'); #10,keaiiii
alter table my_auto modify id int; #删除自动增长
alter table my_auto modify id int auto_increment; #添加自动增长
2 条评论
啊哈
一巴掌撸死你