mysql对关键字大小写不敏感,但建议关键字大写
创建数据库 create database 数据库名
CREATE DATABASE mydb;
创建数据库并指定编码格式 create database 数据库名 character set 编码格式
CREATE DATABASE mydb_utf8mb4 CHARACTER SET utf8mb4;
先判断数据库是否存在,再进行创建 create database if not exists 数据库名
CREATE DATABASE IF NOT EXISTS mydb;
修改数据库编码 alter database 数据库名 character set 编码格式
ALTER DATABASE mydb CHARACTER SET utf8mb4;
查看所有数据库 show databases
SHOW DATABASES;
查看指定数据库的字符编码 show create database 数据库名
SHOW CREATE DATABASE mydb;
删除数据库 drop database 数据库名
DROP DATABASE mydb_utf8mb4;
查看当前使用的数据库 select database()
SELECT database();
设置当前使用的数据库 use 数据库
USE mydb;
| 类型名称 | 说明 |
|---|---|
| int | 整数类型 |
| double | 小数类型 |
| decimal(m,d) | 指定整数位与小数位长度的小数类型 |
| date | 日期类型,格式为yyyy-MM-dd,包含年月日,不包含时分秒 |
| datetime | 日期类型,格式为 YYYY-MM-DD HH:MM:SS,包含年月日时分秒 |
| timestamp | 日期类型,时间戳 1970-01-01 00:00:00 - 2038-12-31 23:59:59 |
| varchar(M) | 文本类型, M为0~65535之间的整数(可变长度) |
| char(M) | 文本类型, M为0~65535之间的整数(不可变长度) |
创建表, 格式:
create table 表名 (
字段名 数据类型[长度] [约束],
字段名 数据类型[长度] [约束],
...
);
注:[]中的内容是可选项
创建表student, 字段包括 编号id 姓名name 年龄age
CREATE TABLE student(
id int,
name varchar(5),
age int
);
创建表users, 字段包括 编号id 用户名username 密码password
CREATE TABLE users(
id int,
username varchar(50),
password varchar(50)
);
查看所有表 show tables;
SHOW TABLES;
查看指定表的建表结构 show create table 表名;
SHOW CREATE TABLE users;
删除表 drop table 表名;
DROP TABLE users;
对表中的列的信息进行修改
添加新的列 alter table 表名 add 新列名 数据类型(长度);
ALTER TABLE student add `desc` varchar(50);
# 如果想用关键字当列名的话,需要用 `` 括起来
修改列的数据类型(长度) alter table 表名 modify 列名 修改后的数据类型(长度);
ALTER TABLE student MODIFY name varchar(3);
修改列的名称 alter table 表名 change 列名 新列名 新列名的数据类型(长度);
ALTER TABLE student CHANGE `desc` description varchar(50);
删除指定列 alter table 表名 drop 列名;
ALTER TABLE student DROP description;
对表本身进行修改
修改表的名称 rename table 表名 to 新表名;
RENAME TABLE Student to student;
修改表的字符编码 alter table 表名 character set 字符编码;
ALTER TABLE student CHARACTER SET utf8mb4;
插入表记录
对指定的字段插入值 insert into 表名(字段1, 字段2, …) values (值1,值2, …);
INSERT INTO student(id, name, age) VALUES (1, '张三', 20);
INSERT INTO student(id, name, age) VALUES (1, '张三三三', 20); – 此时报错 因为name长度最大为3
INSERT INTO student(id, name) VALUES (3, '赵五');
对所有字段插入值 insert into 表名 values(值1, 值2, …);
INSERT INTO student VALUES (2, '李四', 21);
一次性插入多条数据 insert into 表名(字段1, 字段2, …) values (值1, 值2, …),(值1, 值2, …);
INSERT INTO student(id, name, age) VALUES (4, '赵五', 22),(5, '王六', 23);
注意
- 值与字段必须对应, 个数相同, 类型相同
- 值的数据大小必须在字段的指定长度范围内
- 除了整数、小数类型外, 其它字段类型的值必须使用引号引起来 (建议单引号)
- 如果要插入空值, 可以不写字段, 或者插入NULL
修改表记录 update 表名 set 字段1=值, 字段2=值… where 条件;
UPDATE student set age = 19 WHERE id = 3; – 如果不加where那将修改整张表
删除表记录 delete from 表名 where 条件;
DELETE FROM student WHERE age IS NULL; – 如果不加where那将删除整张表