SQL

SQL是结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

SQL server 已结果集创建新表 sql创建表结构的命令_SQL server 已结果集创建新表

(下面用CMD窗口打开mysql来创建表)

常用命令

登录MYSQL

mysql -u root -p   //登录mysql  root超级管理员 最高权限用户  输入mysql密码,进入mysql。

SQL server 已结果集创建新表 sql创建表结构的命令_sql_02

查询当前数据库

show databases;   //查询所有数据库。(注意:不要胡乱删除数据库,除非你要删库跑路)

SQL server 已结果集创建新表 sql创建表结构的命令_SQL server 已结果集创建新表_03

创建数据库

create database 数据库名;

SQL server 已结果集创建新表 sql创建表结构的命令_sql_04

创建表

use 库名;  //切换到指定数据库。

CREATE TABLE [ IF NOT EXISTS ] `表名` (

    `字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,

    `字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,

    … …

    `字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]

) [ 表类型 ] [ 表字符集 ] [注释] ;

desc 表名;    //查询表结构。

SQL server 已结果集创建新表 sql创建表结构的命令_表名_05

添加表数据

insert into subject (列名1,列名2,列名3) values(数据1,数据2,数据3);      //添加表数据。

select * from 表名;   //查询表中所有信息。

SQL server 已结果集创建新表 sql创建表结构的命令_表名_06

类型

SQL server 已结果集创建新表 sql创建表结构的命令_字段名_07

SQL server 已结果集创建新表 sql创建表结构的命令_表名_08

SQL server 已结果集创建新表 sql创建表结构的命令_sql_09

属性

MYSQL数据库列属性主要有:NULL/NOTNULL,DEFAULT,AUTO_INCREMENT,ZEROFILL,PRIMARY KEY,COMMENT等.

NULL/NOT NULL:空值, 设置列属性为空或不空。

CREATE TABLE [ IF NOT EXISTS ] `表名` (

    `字段名1` 列类型 NOT NULL/NULL  [ 索引 ] [注释]

) [ 表类型 ] [ 表字符集 ] [注释] ;

DEFAULT:默认值可以在一开始就制定好,在需要真实数据的时候,用户可以选择性的使用默认值。

CREATE TABLE [ IF NOT EXISTS ] `表名` (

    `字段名1` 列类型 DEFAULT ''自定义默认值'

) [ 表类型 ] [ 表字符集 ] [注释] ;

AUTO_INCREMENT:自增长当对应的字段,不给值,或者给默认值,或者给NULL的时候,会自动的被系统触发,系统会从当前字段中已有的最大值再进行+1操作,得到一个新的不同字段,当给值后,以给的值优先。一张表最多只能有一个自增长。

CREATE TABLE [ IF NOT EXISTS ] `表名` (

    `字段名1` 列类型 AUTO_INCREMENT PRIMARY KEY [注释]            //任何一个字段要做自增长必须前提是本身是一个索引

) [ 表类型 ] [ 表字符集 ] [注释] ;

PRIMARY KEY:主键约束,主键对应的字段中的数据不允许重复。

CREATE TABLE [ IF NOT EXISTS ] `表名` (

    `字段名1` 列类型 [ 属性 ] PRIMARY KEY [注释] ,

) [ 表类型 ] [ 表字符集 ] [注释] ;     

ALTER  TABLE  表名  ADD  PRIMARY  KEY( 主列名 )//添加主键约束

ALTER  TABLE  表名  DROP  PRIMARY  KEY    //删除主键,如果主键有自增长(AUTO_INCREMENT)属性,先修改去掉自增长,再删除主键。

FOREIGN  KEY:外键约束,是实现表与表之间的约束,从表的字段值必须在主表中。存在外键约束毕竟是一个约束,只是保证数据完整性的一个手段。

加入外键的条件:

  1. 两个表有相同属性字段,取值范围相同;
  2. 外键在主表中是主键或者是唯一字段;
  3. 外键可以是多个字段的组合。

CREATE TABLE [ IF NOT EXISTS ] `主表名` (

    `字段名1` 列类型 [ 属性 ] PRIMARY KEY [注释] ,

) [ 表类型 ] [ 表字符集 ] [注释] ; 

CREATE TABLE [ IF NOT EXISTS ] `从表名` (

    `字段名1` 列类型 [ 属性 ] ,//与主表的列属性一致;

    FOREIGN KEY (从表的字段名) REFERENCES 主表名(主表的字段名) /*/外键 从表的字段名 参照 主表中的 字段名  

) [ 表类型 ] [ 表字符集 ] [注释] ; 

CREATE TABLE [ IF NOT EXISTS ] `从表名` (

    `字段名1` 列类型 [ 属性 ]  referencesREFERENCES 主表名(主表字段名1)    //这种也可以,

) [ 表类型 ] [ 表字符集 ] [注释] ;

ALTER  TABLE  从表名   ADD  CONSTRAINT 外键名  FOREIGN  KEY(从表中得到字段名)   REFERENCES 主表(主表中的字段名);    //外键就是从表参照主表的列

ALTER  TABLE  从表名  DROP FOREIGN  KEY 外键约束名称 ;     //删除外键。

COMMENT:注释的意思,可以注释列,也可以注释表。

CREATE TABLE [ IF NOT EXISTS ] `表名` (

    `字段名1` 列类型 [ 属性 ] [ 索引 ] COMMENT ''自定义注释名'

) [ 表类型 ] [ 表字符集 ]  COMMENT='自定义注释名' ;