MySQL学习笔记
DDL语句
DDL(Data Definition Language,数据定义语言)就是对数据库内部对象进行创建,删除,修改等操作的语言.它和DML语句最大的区别是DML只能对表内部数据进行操作,而不涉及表的定义,结构的修改.DDL语句更多的由数据库管理员(DBA)使用,开发人员一般很少使用.
DDL语句:主要由create、alter、drop和 truncate 四个关键字完成。
常用命令
创建数据库:
语法:
CREATE DATABASE 想要创建的数据库名;
例:
// 创建了一个名为test1的数据库;
create database test1;
查看系统中已有的数据库:
// 查看系统中已有的数据库;
show databases;
mysql有4个自带的数据库:
库名 | 功能 |
---|---|
information_schema | 主要是储存了系统中的一些数据库对象信息,比如用户表信息,列信息,权限信息, 字符串信息,区分信息等. |
cluster | 储存了系统的集群信息. |
mysql | 储存了系统的用户权限信息. |
test | 系统自动创建的测试数据库,任何用户都可以使用. |
选择数据库:
语法:
USE 数据库名;
例:
// 切换到test数据库;
USE test;
查看当前数据库下的所有数据表:
// 切换到test数据库;
show tables;
删除数据库:
语法:
drop database 数据库名;
例:
// 删除test1数据库;
drop database test1;
创建表:
语法:
CREATE TABLE 要创建的表名(
列名1 列的数据类型1 列的约束条件,
列名2 列的数据类型2 列的约束条件,
列名3 列的数据类型3 列的约束条件,
)
例:
// 创建了一个名为emp的表
CREATE TABLE emp(
ename varchar(10),
hiredate date,
sal decimal(10,2),
deptno int(2));
创建完成后查看表定义:
desc tablename;
查看更详细的表信息:
show create table tablename \G;
删除表:
语法:
DROP TABLE 表名;
例:
// 删除了一个名为emp的表
DROP TABLE emp;
修改表:
修改字段的数据类型:
语法:
ALTER TABLE 表名 MODIFY 字段 想要修改的数据类型
例:
// 将emp表下的ename字段的数据类型修改成varchar(20)
alter table emp modify ename varchar(20);
添加字段:
语法:
ALTER TABLE 表名 ADD COLUMN 新增的字段 新增字段的数据类型;
例:
// 在emp表下新增字段age数据类型为int(3)
alter table emp add column age int(3);
删除字段:
语法:
ALTER TABLE 表名 DROP COLUMN 要删除的字段
例:
// 删除了emp表下的age字段
alter table emp drop column age;
修改字段名:
语法:
ALTER TABLE 表名 CHANGE 原字段名 新字段名 新字段的数据类型;
例:
// 将age字段名改为age1并将数据类型修改为int(4)
alter table emp change age age1 int(4);
修改字段的排列顺序:
前面的字段增加和修改语法(ADD|MODIFY|CHANGE)中,都可以在字段名前面添加 first|after:
例:
// 新增birth字段并放在ename字段后面
alter table emp add birth date after ename;
// 新增age字段并且其位置为第一个
alter table emp modify age int(3) first;
更改表名:
语法:
ALTER TABLE 表名 RENAME 新表名;
例:
// 将emp表名修改为emp1
alter emp rename emp1;
注意:
1.update和alter的区别:
alter用来修改基本表,是对表的结构进行操作,比如对字段增加,删除,修改类型
update用来修改表中的数据,修改某一行某一列的值
2.change 和 modify的区别:
change 和 modify 都可以修改表的定义,不同的是change后面需要写两次列名,不方便,但是change
的优点是可以修改名称,modify则不能.
3.CHANGE|AFTER|FIRST 这些关键字都是mysql在标准SQL上面的扩展,在其他数据库上并不一定适用.