SQL
外包(尽量不去):软通动力,文思文辉,宇信易城,先进数通,四方精创
甲方(加油去):四大行+股价制银行… 广发证券、中信证券… 腾讯、顺丰、京东… 华为、中兴…
一、了解数据库
数据库:按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
结构:关系型数据库/非关系型数据库【键值对存储、文档存储、基于列的数据库、图形数据库】
关系型数据库与Excel的对比:
数据库-Excel文件
表-sheet页
行、列-行(记录)、列(字段)
操作数据库:使用SQL语言
数据库管理系统(DBMS):管理
一个或一组文件:组织、存储
SQL:结构化查询语言(Structured Query Language),一种特殊目的的编程语言,一种数据库查询和程序设计语言,查询、更新和管理关系数据库系统。
二、创建表
使用SQL语句创建表:关键字(保留字) CREATE TABLE
注意:关键字不能做名称;
表明和字段名不能使用中文;
CREATE TABLE关键字后加表名,字段名在括号中列出且以逗号分隔;
每个SQL结尾都要加分号;
不区分大小写,最好关键字都写大写;按照一定规则缩进。
每个字段都需要设置数据类型;
常用的数据类型有以下几大类:字符类、数值类、日期和时间类、二进制类
数据类型的两个作用:存储什么数据?如何储存?
字符串数据类型:两类-定长字符串:处理性能高;产生较少的存储碎片。占用存储多。
不定长字符串:占用存储少。处理性能低;产生较多存储碎片。
设置注释
关键字COMMENT
存在的表添加注释用ALTER TABLE关键字
设置默认值
使用DEFAULT关键字
注意:表中所有的字段都可以设置默认值;
默认值的数据类型必须与字段保持一致;
出主键字段外,建议其他所有字段都设置默认值。
设置主键
主键:唯一标识表中每一行的某一列或者多列。
使用PRIMARY KEY关键字定义。
主键的特点:一个表只能有一个主键;
一个表中所有行,主键字段的值不允许重复;主键的作用是保证数据的唯一性和完整性;
主键字段可以为多个,甚至是表中所有字段一起做主键;多个字段一起做主键时,我们成称为联合主键或者重复主键;不过一般不超过5个,否则会影响操作性能;
允许为NULL的字段不能做主键字段;主键不应包含动态变化的数据;
主键字段不允许更新,一般是永远不要更新主键的值。
特殊的NULL
在创建表时,对于表中的每个字段,可以指定字段是否必须包含值。对于可以不包含值的字段,可以向字段中插入NULL值。
每个字段,要么是NOT NULL,要么是为NULL。创建表时,可以不指定。默认情况下为NULL,即不包含值。
NULL是什么?NULL相当于一个空酒杯,NULL什么都不是!它用来表示一种“不知道”、“不确定”的状态。
注意:允许NULL值的字符不能作为主键字段;
尽量避免将字段设置为可为NULL,事实上,应该定下规范,所有字段都必须设置设置为NOT NULL。
三、操纵表
注意:不同的数据库,操纵表的语法差别较大。
表的关键信息
表名、字段名、字段类型必须有。
更新表名:使用RENAME TABLE关键字。
语法如下:RENAME TABLE 旧表名 TO 新表名;
更新字段名:使用ALTER TABLE关键字。
语法如下:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 字段类型;
注意:修改字段名时,可以同时修改字段类型。
更新字段类型、NULL值设置、默认值
更新字段类型:使用ALTER TABLE关键字
语法如下:ALTER TABLE 表名 MODIFY 字段名 新字段类型;
删除字段默认值:使用ALTER TABLE关键字。
语法如下:ALTER TABLE 表名 ALTER COLUMN 字段名 DROP DEFAULT;
更新主键字段:
设置主键:如果表已存在,但没有定义主键字段,可使用ALTER TABLE关键字设置主键。
语法如下:ALTER TABLE 表名 ADD PEIMARY KRY(主键字段列表);
删除主键字段:如果表中已定义主键字段,可使用ALTER TABLE关键字删除主键。
语法如下:ALTER TABLE 表名 DROP PEIMARY KEY;
新增字段:使用ALTER TABLE关键字。
语法如下:ALTER TABLE 表名 ADD COLUMN 新字段名 字段类型及其他属性;
删除字段:使用ALTER TABLE关键字。
语法如下:ALTER TABLE 表名 DROP COLIMN 字段名;
删除表:使用DROP TABLE关键字。
语法如下:DROP TABLE 表名;
汇总:
四、插入数据
初始化(后面有用的)
插入整行字段:关键字INSERT INTO
INSERT INTO 表名 VALUES(?,?,?,?);
但,这样,值的顺序与表中的字段顺序必须一致!不安全!
->INSERT INTO teacher(teacher_id,teacher_name,gender)
VALUES(‘T0001’,‘高齐妍’,‘男’);
安全
插入部分字段:
一次插入多行:
注:建议一条SQL语句插入的条数在1000条以下;
还受限于数据库支持的单条SQL语句的长度。
借助其他表数据插入:
克隆表: