MYSOL数据库-创建、修改表

MYSQL数据库操作语言

– DDL(数据定义语言)
– DML (数据操作语言)
用于操作数据库对象中所包含的数据
INSERT、UPDATE、DELETE 用于 给表添加 删除 修改数据

– DQL(数据查询语言)
用于查询数据库数据 SELECT 查询数据

– DCL(数据控制语言)
用来管理数据库的语言,包括管理权限及数据更改
– GRANT、COMMIT、ROLLBACK

软件:navicat 运行sql

  1. 选中语句
  2. ctrl+shift+R

DDL(数据定义语言) :

定义和管理数据对象,如数据库,数据表等

  • CREATE 创建数据库 创建表
  • DROP 删除表 删除数据库
  • ALTER 添加约束 删除约束
CREATE 创建数据库

语法:

  • CREATE DATABASE [IF NOT EXISTS] 数据库名;

案例演示:
1、

CREATE DATABASE IF NOT EXISTS myschool;
-- IF NOT EXISTS 判断 myschool 数据库是否不存在 

2、

CREATE DATABASE  myschool; ---- ;表示语句结束
DROP 删除数据库

语法:

  • DROP DATABASE [IF EXISTS] 数据库名;

案例演示:

-- DROP DATABASE IF EXISTS myschool;
DROP DATABASE  myschool;
查询mysql中 所有的数据库
SHOW DATABASES;  

创建表

1、创建表必须之前创建数据库并且使用数据库
使用数据库语法
语法: use 数据库名;

USE myschool;

2、创建表语法:
CREATE TABLE [ IF NOT EXISTS ] 表名(
– 列名 类型 属性 索引 注释,…
– )[ 表类型 ] [ 表字符集 ] [注释] ;

属性

  • 主键约束 标记一条数据的唯一性(不允许重复 不允许为NULL)

  • AUTO_INCREMENT 自增列 为列填充一个序列 这个序列不会重复

  • 默认值 DEFAULT 为列添加一个默认值 当这个列为空时使用默认值 作为 值

  • ZEROFILL 0填充的 不足位数的用0来填充,如 int(3),5则为 005

  • UNSIGNED 无符号的 声明该数据列不允许负数

注释

  • COMMENT

案例演示:

CREATE TABLE IF NOT EXISTS member(
	id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
	userCode VARCHAR(32) NOT NULL COMMENT "账号",
    userName VARCHAR(32) NOT NUll COMMENT "真实姓名",
    userSex int(1) NOT NULL DEFAULT 0 COMMENT "性别 0:女 1:男",
   `password` VARCHAR(32) NOT NUll COMMENT "密码",
    birthday DATE NOT NULL COMMENT "出生时间" ,
    PRIMARY KEY(id) -- 设置主键
);

3、修改表名
语法:ALTER TABLE 旧表名 RENAME AS 新表名

ALTER TABLE student RENAME AS newStudent;

4、显示当前数据的所有表

SHOW TABLES;

5、为表追加列
ALTER TABLE 表名 ADD 字段名 列类型 [ 属性 ]

ALTER TABLE newStudent ADD stuNo int(4) NOT NULL;

6、修改列的类型
ALTER TABLE 表名 MODIFY 字段名 列类型 [ 属性 ]

ALTER TABLE newStudent MODIFY stuNo VARCHAR(32) NOT NULL;

7、修改列 名字 类型 属性
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列类型 [ 属性 ]

ALTER TABLE newStudent CHANGE stuNo studentNo int(4) NOT NUll;

8、删除列
ALTER TABLE 表名 DROP 字段名

 ALTER TABLE newStudent DROP  studentNo;

9、删除表
DROP TABLE IF EXISTS 表名;

DROP TABLE member;

表的补充:

  1. 在列中的值必须存在,这就是非空约束
  2. 在列中的值必须是唯一的,不能重复,这就是唯一约束
  3. 这个列或者两个列可以唯一确定这一行数据与其他的行的数据是有区分的,这就是主键约束
  4. 列的值如果没有手动的填充,数据表默认提供一个值,这就是默认约束
  5. 这个列中值是自动往上增加的,如AUTO_INCREMENT 自增约束
  6. 这个列上的值,一定来源于其他的表中的值
    如订单表中的商品编号 一定 来自于商品表
    外键约束
  7. 规定这个列中的值 在一定范围内
    如性别 1男 2女 3其他 检查约束
    1,2,3,4,5,7是发生在一个表中的约束,而6是发生在两个表中

10、为表中添加约束

  • 主键约束 PRIMARY KEY (简称PK)
  • 非空约束 NOT NULL 如: 列名 类型 NOT NULL
  • 唯一约束 Unique
  • 外检约束 Foreign Ket (简称 FK)
  • 默认约束 DEFAULT 如: 列名 类型 NOT NULL DEFAULT ‘男’
  • 检查约束 CHECK
  • 自增约束 AUTO_INCREMENT

主键约束 PRIMARY KEY (简称PK)

CREATE TABLE test1(
   id int(11) PRIMARY key,
   `name` VARCHAR(10)
  -- PRIMARY key(id) 设置主键约束
)

唯一约束 Unique

CREATE TABLE test2(
  id int(11) PRIMARY KEY,
 `name` VARCHAR(10) UNIQUE
)

11、显示表结构
约束: desc 表名

DESC newstudent;

12、显示表创建语句
语法:show create table 表名

SHOW CREATE table newstudent;