一段完整的创建表格的SQL代码

使用SQL语句创建一张表,不仅可以可以快速熟悉SQL语句,还可以从这看出一个人对该技能点的熟悉程度。

这里先说明几点:

PRIMARY KEY:主键,一张表中只允许有一个PRIMARY KEY,不允许有NULL值。
UNIQUE KEY:约束,约束确保在非主键列中不输入重复的值,允许有NULL值,而PRIMARY KEY 不允许有NULL值,且一张表中只有一个PRIMARY KEY,而UNIQUE KEY在一张表中可以有多个。
ENGINE=INNODB,表示SQL数据库引擎为INNODB,操作数据库级别为表中的行级别(可以并发操作两行不同的数据库),另外一个引擎为MYISAM,操作数据库级别为整张表,相对来说,MYISAM操作的效率高于INNODB,不过一般数据库中都使用的是INNODB。

  1. -- 如果test数据库不存在,就创建test数据库:
  2. CREATE DATABASE IF NOT EXISTS test;
  3.  
  4. -- 切换到test数据库
  5. USE test;
  6.  
  7. -- 删除classes表和students表(如果存在):
  8. DROP TABLE IF EXISTS classes;
  9. DROP TABLE IF EXISTS students;
  10.  
  11. -- 创建classes表:
  12. CREATE TABLE classes (
  13. id BIGINT NOT NULL AUTO_INCREMENT,
  14. name VARCHAR(100) NOT NULL,
  15. PRIMARY KEY (id)
  16. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  17.  
  18. -- 创建students表:
  19. CREATE TABLE students (
  20. id BIGINT NOT NULL AUTO_INCREMENT,
  21. class_id BIGINT NOT NULL,
  22. name VARCHAR(100) NOT NULL,
  23. gender VARCHAR(1) NOT NULL,
  24. score INT NOT NULL,
  25. PRIMARY KEY (id)
  26. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  27.  
  28. -- 插入classes记录:
  29. INSERT INTO classes(id, name) VALUES (1, '一班');
  30. INSERT INTO classes(id, name) VALUES (2, '二班');
  31. INSERT INTO classes(id, name) VALUES (3, '三班');
  32. INSERT INTO classes(id, name) VALUES (4, '四班');
  33.  
  34. -- 插入students记录:
  35. INSERT INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'M', 90);
  36. INSERT INTO students (id, class_id, name, gender, score) VALUES (2, 1, '小红', 'F', 95);
  37. INSERT INTO students (id, class_id, name, gender, score) VALUES (3, 1, '小军', 'M', 88);
  38. INSERT INTO students (id, class_id, name, gender, score) VALUES (4, 1, '小米', 'F', 73);
  39. INSERT INTO students (id, class_id, name, gender, score) VALUES (5, 2, '小白', 'F', 81);
  40. INSERT INTO students (id, class_id, name, gender, score) VALUES (6, 2, '小兵', 'M', 55);
  41. INSERT INTO students (id, class_id, name, gender, score) VALUES (7, 2, '小林', 'M', 85);
  42. INSERT INTO students (id, class_id, name, gender, score) VALUES (8, 3, '小新', 'F', 91);
  43. INSERT INTO students (id, class_id, name, gender, score) VALUES (9, 3, '小王', 'M', 89);
  44. INSERT INTO students (id, class_id, name, gender, score) VALUES (10, 3, '小丽', 'F', 85);
  45.  
  46. -- OK:
  47. SELECT 'ok' as 'result:';

一段完整的创建表格的SQL代码的更多相关文章

  1. PHP通过(PDO)Mysql表字段一键生成创建sqlite的SQL

    首发于:http://www.zzzzy.com/201406053158.html /** * Mysql表字段一键生成创建sqlite的SQL 2 * @author: Skiychan < ...

  2. SQL创建表格——手写代码

    打开phpstudy,打开Navicat for MySQL,进入要创建表格的数据库,点击上方“查询”按钮,“创建查询”,即可输入代码进行创建. 例: create table class( clas ...

  3. kettle用mysql创建资源库执行sql代码报错

    一.原因:  sql语句里边使用 'Y' 'N'  给boolean类型的赋值产生sql失败    二.解决方法:将insert语句中‘Y’或‘N’ 改成TRUE或FALSE即可,共两张表3个地方  ...

  4. js如何动态创建表格(两种方法)

    js如何动态创建表格(两种方法) 一.总结 一句话总结: 1.方法一:写好创建表格的html代码,将之赋值给div的innerHTML. 2.方法二.直接用创建好的table元素的方法insertRo ...

  5. PowerDesigner 创建表格及导出SQL语句

    PowerDesigner 创建表格及导出SQL语句   目的:提高数据库创建表格效率 测试数据库:orcale 1.新建物理模型. 右键点击workplace,new一个物理模型并指定数据库. 2. ...

  6. JS创建表格完整

    <!DOCTYPE> <html> <head> <meta charset=utf-8 /> <title>动态表格</title& ...

  7. 在腾讯云上创建您的SQL Cluster(4)

    版权声明:本文由李斯达原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/255 来源:腾云阁 https://www.qclo ...

  8. 根据ccid取得账户,更改某段值再创建账户,返回新的ccid

    CREATE OR REPLACE PACKAGE cux_cuxaprebate_utl IS * =============================================== * ...

  9. MySQL 基础二 创建表格

    1.界面创建 2.SQL创建 教程地址:http://blog.csdn.net/brucexia/article/details/53738596 提供学习视频下载 链接:http://pan.ba ...

随机推荐

  1. 疑问:Spring 中构造器、init-method、@PostConstruct、afterPropertiesSet 孰先孰后,自动注入发生时间

    一.前言 spring的一大优点就是扩展性很强,比如,在spring bean 的生命周期中,给我们预留了很多参与bean 的生命周期的方法.大致梳理一下,有以下几种: 通过实现 Initializi ...

  2. 黄聪:wordpress登录后台后load-scripts.php载入缓慢

    今天一个微信群里一个好友问大鸟,他的wordpess后台载入非常缓慢,缓慢到什么程度,我们看图: 这个真的是超级慢了,这类问题怎么解决呢,我们登录后台后,按下F12打开控制台,接着点击network, ...

  3. docker安装完报错:Failed to start docker.service: Unit docker.service is masked

    执行 systemctl start docker 报错 Failed to start docker.service: Unit docker.service is masked. 解决 syste ...

  4. 2018-8-10-win10-uwp-进度条-Marquez-

    原文:2018-8-10-win10-uwp-进度条-Marquez- title author date CreateTime categories win10 uwp 进度条 Marquez li ...

  5. asp.net 关于gridview使用的一些小技巧

    gridview中嵌套控件示例 —— 添加了一个linkbutton 前台: <asp:GridView ID="gv2" runat="server" ...

  6. curl_multi_*模拟多线程异步用法

    测试环境: PHP版本:php7.0.10 mysql版本:5.7.14 测试用例:循环插入两千行数据到数据库 public function test_syn($pc){ // $pc = trim ...

  7. 【OOM】解决思路

    一.什么是OOM? OOM就是outOfMemory,内存溢出!可能是每一个java人员都能遇到的问题!原因是堆中有太多的存活对象(GC-ROOT可达),占满了堆空间. 二.怎么解决? 1.拿到内存溢 ...

  8. 关于Spring Boot你不得不知道的事

    1 Spring Boot官网[2.1.5 CURRENT GA] 1.1 Pivotal Wiki Pivotal Software, Inc. is a software and services ...

  9. Linux命令大全|linux常用命令

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

  10. Python格式化输出和深浅复制

    字符串的四种拼接方法,常用格式化 deepcopy(深复制) bytes 和 bytearray 的基本用法 字符串拼接 使用 + 格式化字符串 使用join 用单引号内的字符来拼接,参数填一个整体 ...