#DDL数据定义语言
/*
关键词
create、alter、drop
库的操作:创建库(★)、删除库
表的操作:创建表(★)、修改表、删除表(★)、复制表
*/
#一、库的操作
SHOW DATABASES;
#1.创建库
CREATE DATABASE student;
CREATE DATABASE IF NOT EXISTS student;
#2.删除库
DROP DATABASE student;
DROP DATABASE IF EXISTS student;
#二、表的操作
#1.创建表
#语法:
#CREATE TABLE表名(
# 字段名字段类型【(长度)】 【约束】,
# 字段名字段类型【(长度)】 【约束】,
# 字段名字段类型【(长度)】 【约束】,
# 字段名字段类型【(长度)】 【约束】
#
#)
#案例:创建学员信息表
#学号、姓名、性别、邮箱、生日
CREATE TABLE stuinfo(
stuNo INT,#学号
stuName VARCHAR(20),#姓名
gender CHAR(1),#性别
email VARCHAR(50),#邮箱
borndate DATETIME #生日
)
SHOW TABLES;
DESC stuinfo;
#2.修改表
#①修改表名
ALTER TABLE stuinfo RENAME TO student;
ALTER TABLE student RENAME stuinfo;
尖叫提示:to是可以省略的
#②修改列名,不加类型 报错,需要加类型
ALTER TABLE stuinfo CHANGE COLUMN borndate birthday DATETIME;
ALTER TABLE stuinfo CHANGE COLUMN birthday borndate ; ×
change
#③修改列的类型
ALTER TABLE stuinfo MODIFY COLUMN gender VARCHAR(2);
#④添加新列
ALTER TABLE stuinfo ADD COLUMN phone VARCHAR(11);
#⑤删除列
ALTER TABLE stuinfo DROP COLUMN phone;
#3.删除表
DROP TABLE stuinfo;
DROP TABLE IF EXISTS stuinfo;
SHOW TABLES;
#4.表的复制
INSERT INTO stuinfo VALUES(2,'少杰','男','',NOW());
SELECT * FROM stuinfo;
#①仅仅复制表的结构
CREATE TABLE newTable2 LIKE stuinfo;
#②复制表的结构+数据
CREATE TABLE newTable3
SELECT * FROM stuinfo;
CREATE TABLE newTable4
SELECT stuno,stuname
FROM stuinfo WHERE stuno=1;
#DDL数据定义语言
#一、库的操作
#1.创建库
CREATE database student
create database if not EXISTS student
#2.删除库
drop database if exists student
#二、表的操作
use girls
drop table stuinfo
create table stuinfo(
stuno int,
stuname varchar(20),
gender char(1),
email varchar(30),
brondate datetime
)
SELECT * from stuinfo
#2.修改表
#①修改表名
alter table stuinfo rename to student
alter table student rename stuinfo
#②修改列名,不加类型 报错,需要加类型
alter table stuinfo change column brondate brithday datetime
alter table stuinfo change column brithday brondate datetime
#③修改列的类型
alter table stuinfo modify column gender varchar(2)
desc stuinfo
#④添加新列
alter table stuinfo add column phone varchar(11)
#⑤删除列
alter table stuinfo drop column phone
#3.删除表
drop table stuinfo
drop table if exists stuinfo
#4.表的复制
SELECT * from stuinfo
insert into stuinfo
VALUES(1,'dad','男','111111@.com',now())
#①仅仅复制表的结构
create table newteble2 like stuinfo
#②复制表的结构+数据
CREATE table newtable3
SELECT * from stuinfo
SELECT * from newtable3