关系型数据库(SQL):MySQL Oracle SqlServer SQLite DB2
非关系型数据库(NOSQL)Redis MongoDB
DDL数据定义语言 CREATE、DROP、ALTER;
DML:数据操纵语言 INSERT、UPDATE、DEETE
DQL:数据查询语言 SELECT
DCL:数据控制语言 GRANT、COMMIT、ROLLBACK
创建数据库:CREATE DATABASE [IF NOT EXISTS]数据库名 [] :代表可选 <>代表必选
删除数据库:DROP DATABASE [IF EXISTS]数据库名
查看数据库:SHOW DATABASES
使用数据库:USE 数据库名
创建表
CREATE TABLE [IF NOT EXISTS] 表名 (
字段1 列类型 [字段属性|约束][索引][注释], //列叫做字段
……
字段n 列类型 [字段属性|约束][索引][注释]
)[表类型][表字符集][注释];
反引号用于区别mysql保留字和普通字符而引入的。
列类型 分为:数值类型 字符串类型 日期和时间型数值类型 NULL值
decimal(m,d) 字符串形式的浮点数 这个数字m位,小数点后面后面有d位
字符串类型 char[(M)] varcha[(M)] text 文本串 DATATIME 常用的时间类型
AUTO_INCREMENT 通常用于设置主键,且为整数类型
关键字关
名称 | 关键字 | 说明 |
非空约束 | NOT NULL | 字段不允许为空 |
默认约束 | DEFAULT | 赋予某字段默认值 |
唯一约束 | UNIQUE KEY(UK) | 设置字段的值是唯一的 允许为空,但只能有一个空值 |
主键约束 | PRIMARY KEY(PK) | 设置该字段为表的主键 可唯一标识该表记录 |
外键约束 | FOREIGN KEY(FK) | 用于在两表之间建立关系, 需要指定引用主表的哪一字段 |
自动增长 | AUTO_INCREMENT | 设置该列为自增字段 默认每条自增1 通常用于设置主键
|
键字
修改表名:ALTER TABLE 旧表名 RENAME [TO]新表名;
添加字段:ALTER TABLE 表名 ADD 字段名 数据类型[属性];
修改字段; ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型[属性];
删除字段:ALTER TABLE 表名 DROP 字段名;
添加主键:ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(字段); 主键名pk_字段名;
添加自增: ALTER TABLE 表名 字段名 INT AUTO_INCREMENT;
添加外键:ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段)
REFERENCES 关联表名(关联字段);
删除外键:ALTAR TABLE 表名 DROP FOREIGN KEY 外键名;
删除索引:ALTAR TABLE 表名 DROP INDEX 外键名;
AUTO_INCREMENT:默认初始值为1 步长为1
改变自增列的初始值
CREATE TABLE table1(
id INT(4) PRIMARY KEY AUTO_INCREMENT
)AUTO_INCREMENT=100; 改变自增列的初始值只影响当前表
改变自增列的步长:SET @@auto_increment_increment=5;
给字段加注释 COMMENT` ` 给表加注释COMMENT=``;
#单行注释 /**/ 多行注释
MYSQL的数据表类型:MyISAM :节约空间及相应速度
InnoDB:安全性、事务处理 及多用户操作数据表
一个表里主键只可以为0个或者一个,但可以有多个外键
有外键的表是从表(子表)
主键和外键列名可以不一样,数据类型必须一致
MyISAM 类型表文件:*.frm:表结构定义文件 *MYD:数据文件 MYI:索引文件
InnoDB类型表文件:*.frm:表结构定义文件 ibdata1文件
MySQL删除和添加不能加别名
字符串函数
函 数 名 | 作 用 | 举 例 |
CONCAT(str1, str1...strn) | 字符串连接 | SELECT CONCAT('My','S','QL'); 返回:MySQL |
INSERT(str, pos,len, newstr) | 字符串替换 | SELECT INSERT( '这是SQL Server数据库', 3,10,'MySQL'); 返回:这是MySQL数据库 |
LOWER(str) | 将字符串转为小写 | SELECT LOWER('MySQL'); 返回:mysql |
UPPER(str) | 将字符串转为大写 | SELECT UPPER('MySQL'); 返回:MYSQL |
SUBSTRING (str,num,len) | 字符串截取 | SELECT SUBSTRING( 'JavaMySQLOracle',5,5); 返回:MySQL |
INSERT(str,pos,len,newstr) 参数1为oldstr;参数2为起始位置,从1开始;参数3为替换的数量;参数4为newstr;
FROM DUAL可以不写,隐式存在。
表结构和表数据的复制,但是索引过不来
CREATE TABLE test1 (
SELECT * FROM test
)
————————————————
版权声明:本文为CSDN博主「Emmet630」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_55928104/article/details/116697592
————————————————
版权声明:本文为CSDN博主「Emmet630」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_55928104/article/details/116697592