SQL语句汇总(一)——数据库与表的操作以及创建约束
首先,非常感谢大家对上篇博文的支持,真是让本菜受宠若惊,同时对拖了这么久才出了此篇表示抱歉。
前言:此文旨在汇总从建立数据库到联接查询等绝大部分SQL语句。SQL语句虽不能说很多,但稍有时间不写就容易出错。博主希望通过此文来战胜自己的健忘,如果大家认可也可以保留起来。
"SQL"是 "Structured Query Language" 即“结构化查询语言”的简称,它是用来管理关系型数据库的。
其包括:
CREATE DATABASE 数据库名;
数据库名命名规则:
CREATE DATABASE test_sql
此图为SQLyog的左侧目录栏,前三个为本地自带数据库。将SQL语句全部选中运行(F8)后,F5刷新目录栏,出现了我们创建的数据库。
连接数据库:
USE test_sql;
删除数据库:
DROP DATABASE test_sql;
接下来就开始创建表了,在创建表之前先列出几种常用的数据类型
整数数据类型:
-INT 大小:4字节
-BIGINT 大小:8字节
浮点数据类型:
- FLOAT 大小:4字节 精度:7位小数
- DOUBLE 大小:8字节 精度:15位小数
字符串数据类型:
- VARCHAR 范围:0-65535
日期数据类型:
- DATE 大小:3字节 格式:YYYY
- DATETIME 大小:8字节 格式:YYYY-MM-DD
创建表:
CREATE TABLE <表名>(<列名> <列的数据类型> [<列的约束>]);
如:
CREATE TABLE t_student(student_name VARCHAR(10),student_birthday DATETIME,student_phone INT,student_score FLOAT);
上表中我们创建了一张学生表,并定义了姓名、生日、电话、得分四列,列名后加上数据类型。其中要注意的是VARCHAR需要在括号内设置字符串的最大长度。
刷新之后就可以看到我们创建的数据库中多了一张表:
选择打开表可以直观的看到内容:
之后我们可以通过SQL语句也可以通过手动为表添加内容。
删除表:
DROP TABLE t_student;
复制表:
CREATE TABLE copy_student SELECT * FROM t_student;
如此我们便复制了一张名为copy_student的表,它包括t_student表中的内容与结构。注意:复制表的同时表的约束并不能复制过来。
只复制表结构而不复制表内容:
CREATE TABLE copy_student SELECT * FROM t_student WHERE 1=0;
只需在WHERE条件中加入一个永不为真的值即可。
修改表
添加新列:
ALTER TABLE t_student ADD student_address VARCHAR(50);
更改列:
ALTER TABLE t_student CHANGE student_birthday student_age INT;
这里我们把学生生日列改为学生年龄列,CHANGE后第一个为旧列名,第二个为新列名。
删除列:
ALTER TABLE t_student DROP COLUMN student_score;
数据库完整性
保证数据库的完整性是为了防止垃圾数据的产生,以免影响数据库的执行效率。这里简要说一些,因为毕竟不是理论类的文章,这里主要是整理汇总SQL语句。
分类:
CREATE TABLE t_student(student_id INT PRIMARY KEY,student_name VARCHAR(10),student_birthday DATETIME,student_phone INT,student_score FLOAT);
实体完整性--唯一约束:
UNIQUE
唯一约束是指给定列的值必须唯一,与主键约束不同的是它可以为空。通常加在表中不能重复的信息中,如电话号码。
CREATE TABLE t_student(student_id INT PRIMARY KEY,student_name VARCHAR(10),student_birthday DATETIME,student_phone INT UNIQUE,student_score FLOAT);
域完整性--非空约束:
NOT NULL
非空约束可以加在诸如姓名等列上。
CREATE TABLE t_student(student_id INT PRIMARY KEY,student_name VARCHAR(10) NOT NULL,student_birthday DATETIME,student_phone INT UNIQUE,student_score FLOAT);
域完整性--默认约束:
设定默认值后,可以在添加此列时不指定值,数据库会自动填充设定的默认值。
DEFAULT
现给学生表加入性别列,默认值设为“男”,这样添加新的学生信息时如果没有填写具体的性别均会默认为男性:
CREATE TABLE t_student(student_id INT PRIMARY KEY,student_name VARCHAR(10) NOT NULL,student_sex VARCHAR(5) DEFAULT '男',student_birthday DATETIME,student_phone INT UNIQUE,student_score FLOAT);
引用完整性--外键约束:
外键约束是指在外键关联主键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改。
创建主表--班级表:
CREATE TABLE t_class(class_id INT PRIMARY KEY,class_name VARCHAR(20) UNIQUE NOT NULL);)
创建从表--学生表,并设置外键约束:
CREATE TABLE t_student(student_id INT PRIMARY KEY,s_c_id INT REFERENCES t_class(class_id),student_name VARCHAR(10) NOT NULL,student_sex VARCHAR(5) DEFAULT '男',student_birthday DATETIME,student_phone INT UNIQUE,student_score FLOATCONSTRAINT FOREIGN KEY(s_c_id) REFERENCES t_class(class_id);
红色标识的就是创建外键约束的方法,个人认为也是SQL语句中最难记的。
本篇博文先到这里,写起来才发现SQL比想像的多啊,所以初步打算分为三篇。第二篇讲数据增删改查这些操作、聚合函数及分组,第三篇讲SQL的子查询、组合查询以及连接查询。
感谢您的浏览,希望能对您有所帮助。
转载于:https://www.cnblogs.com/ghost-xyx/p/3795679.html
SQL语句汇总(一)——数据库与表的操作以及创建约束相关推荐
- SQL语句遍历树结构的数据表
[转自]:肆尾葱的博客<SQL语句遍历树结构的数据表> 一.创建树结构的数据库表 -- 数据库为 SQL Server create table treeTest(id int,paren ...
- 数据库常用的sql语句汇总
数据库相关: 查所有数据库 show databases; 创建数据库 create database db1; 查看数据库 show create database db1; 创建数据库指定字符集 ...
- 执行多条SQL语句,执行数据库事务(可传入Sql参数)
上篇博客,实例介绍了一个事务执行多条SQL语句函数(int ExecuteSqlTran(List<String> SQLStringList))点击打开链接,方便之余又发现了它的缺陷-- ...
- sql语句查看MySQL数据库大小
SQL语句查看MySQL数据库大小 > SELECT table_schema "Database Name", sum( data_length + index_lengt ...
- 常用SQL语句 - 基于MySQL数据库
常用SQL语句 - 基于MySQL数据库 基础 连接数据库 mysql -h10.20.66.32 -uroot -p123456 -h后面是mysqlServer所在地址,-u后面是用户名,-p后面 ...
- MySQL表sql语句增删查改_学会这些操作你就不会栓Q(狗头)
目录 本章目标 CRUD 新增(Create) 单行数据,全列插入 多行插入,指定列插入 查询(Retrieve) 修改(Update) 删除(Delete) 本章目标 学会MySQL表中的sql语句 ...
- SQL语句优化优化数据库性能
在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为 ...
- sql语句,怎么查看一个表中的所有约束
sql语句,怎么查看一个表中的所有约束,比如,一个student表,有唯一,外键,主键,用sql语句怎么查看student表中的所有约束呢? select * from sysobjects wher ...
- sql语句lastupdate使用数据库库函数
sql语句lastupdate使用数据库库函数 <sql id="Base_Column_List">CKLSH, ZJLX, ZJHM, MC, CBR, SJY, ...
最新文章
- 办公软件Office 2010下载安装介绍
- java--Hibernate添加数据save
- 二十八、Pyspider 爬取链家网
- OpenGL 实例化属性的实例
- [软件推荐]使用OneNote来构建你自己的知识库(OFFICE2010)
- iOS开发:AFNetworking、MKNetworkKit和ASIHTTPRequest比较
- [html] html5中的meta标签renderer有什么作用?
- sqlite3的backup和restore函数的使用
- mysql 分区 导出_mysql普通表变成分区表导入导出
- 气候变化与 计算机网络,北京理工大学:气候变化综合评估模式研究获立项
- 砸黑板! 正则表达式!!!re 模块
- Python functools模块之cmp_to_key
- Linux开发板循环显示红绿蓝
- 无心剑中译约翰·拉伯克《书海乐无穷》
- 3dsMax学习笔记01_用VRayMtl材质制作玻璃材质
- PAT 1034 有理数四则运算 python
- signature=0ca2720a9af9bfe70731d72325e6c137,Ca2+ signatures
- Clang调试诊断信息Expressive Diagnostics
- java Runable类实现多线程计数器
- SpringBoot2.x系列教程03--新纪元之SpringBoot初相见
热门文章
- vuedraggable嵌套块拖拽_Vue.Draggable拖拽效果
- python内点法_python射线法判断一个点在图形区域内外
- java imapi.jat的使用_springboot+mybatis+Maven+jsp+Quartz整合实战林业厅项目
- ionic自动生成启动页和图标
- 对学生成绩表按计算机应用成绩排序,计算机等级考试EXCEL练习题-12学生成绩表2...
- linux sed保存,linux sed
- 华为手机媒体音量自动静音_华为手机音量键隐藏着四个功能,80%的人只知道第一个!...
- python可视化工具bokeh_浅谈python可视化包Bokeh
- 哪款浏览器速度最快_全球知名度非常高的火狐浏览器,它好在哪呢?
- java使用btree_java数据结构之二叉树遍历的非递归实现