当前位置 主页 > 网站技术 > 代码类 >

    数据库常用的sql语句汇总

    栏目:代码类 时间:2020-02-01 15:07

    SQL是目前使用最为广泛的数据库语言之一。这里,我总结了在数据库上,用SQL语言对数据排序、过滤和分组,以及表、视图、联结、子查询、游标、存储过程和触发器等内容。

    数据库相关

    查所有数据库 show databases;
    创建数据库 create database 数据库名;
    查看数据库 show create database 数据库名; //显示当初创建这个库的时候使用什么样的sql语句
    创建数据库指定字符集 create database 数据库名 character set utf8/gbk
    删除数据库 drop database 数据库名;
    使用数据库 use 数据库名;

    表相关

    创建表 create table 表名(id int,name varchar(10)); //表名区分大小写
    查看所有表 show tables;
    查看单个表属性 show create table 表名; //使用的什么创建语句,可以在后面加\G使描述更清晰
    查看表字段 desc 表名;
    创建表指定引擎和字符集 create table 表名(id int,name varchar(10)) engine=myisam/innodb charset=utf8/gbk;
    删除表 drop table [if exists] 表名;删除表(可选择添加是否存在则删除)

    DROP TABLE IF EXISTS `abc`;
    CREATE TABLE `abc` ( 
      `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT comment'商品名称', 
      `name` char(80) NOT NULL DEFAULT '' comment'商品名称', 
      `title` char(20) NOT NULL DEFAULT '' comment'商品名称', 
      `type` tinyint(1) NOT NULL DEFAULT '1' comment'商品名称',
      `condition` char(100) NOT NULL DEFAULT '' comment'商品名称', 
      `show` bit DEFAULT 1 comment '是否可见',
      `price` decimal(5,2) not null comment '价格',
      `status` enum('0', '1', '2') NOT NULL DEFAULT '0' comment '状态',
      PRIMARY KEY (`id`), 
      UNIQUE KEY `name` (`name`)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8;

    建立数据库:

    CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci;

    约束

    not null 非空
    default 默认约束语句,用于约束对应列中的值的默认值,除非默认值为空值,否则不可插入空值
    unique 唯一约束语句,用于约束对应列中的值不能重复,可以有空值,但只能出现一个空值
    primary 主键 = 唯一 + 非空
    auto_increment 自动增长,用于系统自动生成字段的主键值
    foreign key(从表id) reference 主表名(id); 表与表之间建立联系

    修改表

    修改表名 rename table 旧表名 to 新表名;
    修改表名 alter table 旧表名 rename 新表名
    修改字段数据类型 alter table 表名 modify 字段名 数据类型
    修改表属性 alter table 表名 engine=myisam/innodb charset=utf8/gbk;
    添加表字段 alter table 表名 add 新字段名 新数据类型 [约束] [first/after 已存在字段名];
    删除表字段 alter table 表名 drop 字段名;
    修改表字段名和类型 alter table 表名 change 旧字段名 新字段名 类型;
    修改表的类型和位置 alter table 表名 modify 字段名 类型 first/after 已存在字段名;
    删除表 drop table 表名;
    更改表的存储引擎 alter table 表名 engine = 新的存储引擎;
    删除表的外键约束 alter table 表名 drop foreign key 外键名; //删除所有的外键之后,才能删除对应的主键所在的表

    数据相关

    插入数据:
    insert into 表名 values(5,‘xiaoming',null);
    insert into 表名 (字段名1,字段名2…) values (2,‘aa'…);