mysql 数据库基础一,SQL的定义和DDL

一、SQL定义

SQL(Structure Query Language)结构化查询语言。

是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统(来源:百度百科)

结构化查询语言分为DDL、DML、DQL、DCL四种:

    1.DDL(Data Definition Language)数据库定义语言:

       用来定义数据库对象(库、表、列)的语言。

    2.DML(Data Manipulation Language)数据库数据库操作语言:

      用来定义表的数据,比如增加、删除、修改。

    3.DQL(Data Query Language)数据库查询语言:

      用来查询表的数据,做查询操作。

    4.DCL(Data Control Language)数据库控制语言:

      用来定义数据库的访问权限和安全级别。

我们在开发过程中最常用到的是DDL、DML、DQL。

二、DDL

1.新建数据库:CREATE DATABASE `DATABASE_NAME`;

2.删除数据库:DROP DATABASE `DATABASE_NAME`;

3.修改数据库编码格式:ALTER DATABASE `DATABASE_NAME` CHARACTER SET `CHARACTER_SET` 

例子:

  ALTER DATABASE `school` CHARACTER SET utf8

4.新建表:CREATE TABLE `TABLE_NAME` (

  `COLUMN_NAME` `COLUMN_TYPE`(SIZE)  `CONSTRAINT`

)

例子: create table if not exists student(

sid int(8) unsigned NOT NULL AUTO_INCREMENT UNIQUE COMMENT '学号',

s_name varchar(255) DEFAULT NULL COMMENT '姓名',

s_id_card varchar(255) DEFAULT NULL COMMENT '身份证号',

s_sex boolean DEFAULT FALSE COMMENT '性别,true-男,false-女',

s_create_time datetime DEFAULT NULL COMMENT '入学时间',

PRIMARY KEY(`sid`)

)ENGINE=InnoDB DEFAULT CHARSET utf8 COMMENT '学生表';

外键约束写法:FOREIGN KEY(`COLUMN_NAME`) REFRENCES `TABLE_NAME`(`COLUMN_NAME`) ON DELETE RESTRICT |   | NO ACTION | SET DEFAULT ON UPDATE RESTRICT | NO ACTION | SET DEFAULT | CASCADE;

注意:外键使用必须满足以下条件

  (1)两张表必须是InnoDB存储引擎的表,并且它们没有临时表;

  (2)建立外键的对应列必须具有相同的InnoDB数据类型;

  (3)建立外键关系的对应列必须建立索引;

5.查看表结构:DESCRIBE `TABLE_NAME`

6.查看表详细结构: SHOW CREATE TABLE `TABLE_NAME`

5.修改表

 (1)修改表名:ALTER TABLE `TABLE_NAME` RENAME `NEW_TABLE_NAME`

   例子:alter table student rename new_student

 (2)修改列的数据类型:ALTER TABLE `TABLE_NAME` MODIFY `COLUMN_NAME` `COLUMN_TYPE`

   例子:alter table student modify s_sex int(8)

 (3)修改列名:ALTER TABLE `TABLE_NAME` CHANGE `COLUMN_NAME` `NEW_COLUMN_NAME` `COLUMN_TYPE`

   例子:alter table student change s_sex sex int(4); 

 (4)增加列:ALTER TABLE `TABLE_NAME` ADD `COLUMN_NAME` `COLUMN_TYPE`(SIZE) `CONSTRAINT`

   例子:alter table student add address varchart(255) default null comment '地址'

 (5)删除列:ALTER TABLE `TABLE_NAME` DROP `COLUMN_NAME`

   例子: alter table student drop address;

 (6)更改表存储引擎:ALTER TABLE `TABLE_NAME`  ENFINE=`ENGINE_NAME`

   例子:alter table student engine=innoDB;

  (7)删除表外键约束:ALTER TABLE `TABLE_NAME` DROP FOREIGN KEY `FOREIGN KEY NAME`

  (8)添加列的外键约束:ALTER TABLE `TABLE_NAME` ADD CONSTRAINT FK_ID FOREIGN KEY(`COLUMN_NAME`) REFERENCES `FOREIGN_TABLE`(`FOREIGN_COLUMN_NAME`)

  (9)删除表:DROP TABLE `TABLE_NAME`

  (10)添加索引:

     a.添加主键索引(设置主键之后,主键自动添加索引): ALTER TABLE `TABLE_NAME` ADD PRIMARY KEY(`COLUMN_NAME`);

    b.添加唯一索引:ALTER TABLE `TABLE_NAME` ADD UNIQUE(`COLUMN_NAME`);

    c.添加普通索引: ALTER TABLE `TABLE_NAME` ADD INDEX(`COLUMN_NAME`) | `INDEX_NAME(`COLUMN_NAME`)`;

    例子:alter table student add index(`class_id`);

    d.添加全文索引:ALTER TABLE `TABLE_NAME` ADD FULLTEXT(`COLUMN_NAME`);

    e.添加多列索引 ALTER TABLE `TABLE_NAME` ADD INDEX(`COLUMN1`,`COLUMN2`...) | `INDEX_NAME`(`COLUMN1`,`COLUMN2`...);

第一次写博客,有哪里不足请大家多多包涵。一枚渴望高新的程序员

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值