MySQL DDL数据定义语句
1. 添加新列
ALTER TABLE table_name
ADD column_name data_type;
2. 删除列
ALTER TABLE table_name
DROP COLUMN column_name;
删除名为 email
的列:
ALTER TABLE employees
DROP COLUMN email;
3. 修改列的数据类型
ALTER TABLE table_name
MODIFY COLUMN column_name new_data_type;
修改salary
列的数据类型
ALTER TABLE employees
MODIFY COLUMN salary DECIMAL(12, 2);
4. 重命名列
ALTER TABLE table_name
RENAME COLUMN old_column_name TO new_column_name;
重命名:
ALTER TABLE employees
RENAME COLUMN first_name TO given_name;
5.其他
- 删除外键:
alter table 从表名 drop foreign key 外键名;
-
修改表名:
ALTER TABLE old_table_name RENAME TO new_table_name;-- 修改表名
-
修改表字符集:
ALTER TABLE table_name CHARACTER SET new_character_set; -- 修改表的字符集
-
修改列名称:
ALTER TABLE table_name CHANGE old_column_name new_column_name data_type; -- 修改列名称
-
修改数据库:
ALTER DATABASE you CHARACTER SET utf8; -- 修改数据库使用的字符集
CREATE TABLE
: 创建表。
基本语法
CREATE TABLE table_name (
column1 data_type [constraints],
column2 data_type [constraints],
...
);
constraints
: 可选,定义列的约束,如PRIMARY KEY
,FOREIGN KEY
,NOT NULL
,UNIQUE
,DEFAULT
.
示例:
CREATE TABLE employees (
employee_id INT PRIMARY KEY,--主键
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
hire_date DATE, --日期类型
salary DECIMAL(10, 2) --十进制类型,两位小数,10是数字的总长度,2是小数点后的位数
);
创建数据库:
CREATE DATABASE mydatabase; // 创建新的数据库
CREATE DATABASE IF NOT EXISTS mydatabase; // 创建前判断有没有存在该数据库
CREATE DATABASE example CHARACTER SET gbk; // 创建指定字符集的数据库
show databases ;--查询所有数据库
select database(); --查询当前数据库
--加上 if exists等就不会报错
create database if not exists project default charset utf8mb4 collate utf8mb4_general_ci;--创建数据库,指定字符集和排序规则
drop database if exists dataBaseName;-- 删除数据库
use `database example`; -- 使用数据库
desc user; --查询表结构
DESCRIBE user; --查询表结构
show columns from customer;-- 类似于查询表结构
show tables; --查询当前数据库所有表
show create table user; --查询指定表的建表语句
create table test(
id int ,
name varchar(30),
salary double
);-- 创建表
alter table test add address varchar(30); -- 添加字段
alter table test modify id double ; --修改数据类型
alter table test change id ID int; --修改字段类型和字段名称
alter table test drop address; --删除字段
alter table test rename to customer; --修改表名