四. DDL语句
4.1 DDL操作数据库
1. 创建数据库
a. 直接创建数据库(记住)
create database 数据库名;
b. 判断是否存在并创建数据库(了解)
create database if not exists 数据库名;
c. 创建数据库并制定编码(了解)
create database 数据库名 character set 字符集;
2. 查看数据库
a. 查看当前mysql下有哪些数据库(记住)
show databases;
b. 查看数据库的创建信息(了解)
show create database 数据库名;
3. 修改数据库
a. 修改数据库的编码(了解)
alter database 数据库名 default character set 字符集;
4. 删除数据库
a. 直接删除数据库(了解)
drop database 数据库名;
5. 使用数据库
# 注意:使用的是哪个数据库,那么操作的就是哪个数据库下面的表
a. 查看正在使用的数据库(了解)
select database();
b. 使用数据库(记住)
use 数据库名;
例子:
-- 这是注释
# 这也是注释
/* 这也是注释 */
# 创建数据库
CREATE DATABASE mydb2;
# 删除数据库
DROP DATABASE mydb2;
# 查看mysql下面有哪些数据库
SHOW DATABASES;
# 查看正在使用哪个数据库
SELECT DATABASE();
# 使用数据库
USE mydb;
创建表:
格式:
create table 表名(
字段名 数据类型(长度) [约束],
字段名 数据类型(长度) [约束],
字段名 数据类型(长度) [约束]
);
解释
字段名就是列名。
mysql的数据类型和java中的数据类型类似,都是用来对数据进行限制的。
常用的数据类型:
整数类型:int
小数类型:double
字符(串)类型:varchar
时间类型:date(只有年月日,没有时分秒)
在常用的数据类型中,如果是varchar类型,必须指定长度,其他类型可以省略长度
约束用来对列的数据进行限制,约束是可选的,可以写,也可以不写。目前省略
# 一. 创建表
# 创建表之前需要使用数据库,使用的是哪个数据库,就是在哪个数据库下面创建表
USE mydb;
数据表和列名起名字时建议全部都小写,如果有多个单词使用下划线隔开。
创建student表,给出id,name,age,address(列)
如果关键字当做列表或表名,建议使用`包裹
CREATE TABLE student(
id INT, -- 定义了id列(字段)
`name` VARCHAR(10), -- 定义了name列(字段)
age INT, -- 定义了age列(字段)
address VARCHAR(10) -- 定义了address列(字段)
);
二. 查看表
查看当前数据库下面有哪些表
SHOW TABLES;
查看表的详情信息
desc 表名
DESC student;
查看创建表的sql语句
show create table 表名;
SHOW CREATE TABLE student;
三.创建一个和原来表结构相同的表
create table 新表名 like 旧表名;
CREATE TABLE teacher LIKE student;
四. 删除表
直接删除表
drop table 表名;
DROP TABLE teacher;
如果表存在,再删除
drop table if exists 表名;
DROP TABLE IF EXISTS student;
五.修改表结构
添加列
alter table 表名 add 列名 数据类型(长度) [约束];
ALTER TABLE student ADD sex VARCHAR(10);
修改列
alter table 表名 modify 列名 数据类型(长度) [约束];
ALTER TABLE student MODIFY sex INT;
修改列名
alter table 表名 change 旧列名 新列名 数据类型(长度) [约束];
ALTER TABLE student CHANGE sex gender VARCHAR(10);
删除列
alter table 表名 drop 列名;
ALTER TABLE student DROP gender;
修改表名
rename table 旧表名 to 新表名;
RENAME TABLE student TO stu;
RENAME TABLE stu TO student;
修改表的字符集
alter table 表名 character set 字符集;
ALTER TABLE student CHARACTER SET gbk;