数据库(一):sql语句

/*
1. 基本概念:
数据库: 存储数据的仓库
数据库管理软件(Database Management Software, DMS): 内部包含多个数据库,数据库中又有多个表(class),表的各项(实例对象)存储了数据
oracle, db2, mysql
mysql: -u username -p password // 本地登录
-h server_ip -P port -u username -p password // 远程登录

2. sql语法: DDL (Data Definition Language) 针对数据库,表以及字段的操作
DML (Data Manipulation Language) 只是对表内部数据的操作,而不涉及到表的定义、结构的修改,更不会涉及到其他对象
*/

/*
DDL: CREATE, SHOW, ALTER, DROP, USE
1. 数据库操作:
CREATE DATABASE [IF NOT EXISTS] database_name [CHARACTER SET GBK]; // 创建数据库

SHOW DATABASES; // 查看所有数据库
SHOW CREATE DATABASE database_name; // 查看创建过程

ALTER DATABASE database_name [CHARACTER SET UTF8]; // 修改数据库

DROP DATABASE [IF EXISTS] database_name; // 删库

USE database_name; // 使用数据库
SELECT database(); // 查看当前使用的数据库

2. 表操作: CREATE, ALTER+(ADD,MODIFY,CHANGE,DROP), DESC
数据类型:
1>>.数值: TINYINT //1 BYTE, INT //4 BYTES, FLOAT //4 BYTES, DOUBLE //8 BYTES, DECIMAL(4,2) //总共四位, 一位小数
tips: FLOAT(4,2) // 34.56
2>>.时间: DATE //YYYY-MM-DD, TIME //HH:MM:SS, YEAR //YYYY, DATETIME //YYYY-MM-DD HH:MM:SS
3>>.字符串: CHAR(L), VARCHAR(L), TEXT, BLOB // 二进制

1.>创建表: CREATE TABLE [IF NOT EXIST] table_name (
field type constraints,
...
);
constraints: PRIMARY KEY [AUTO_INCREMENT], UNIQUE, NOT NULL, DEFAULT
PRIMARY KEY(field, field2,..) // 联合主键

2.>查看表信息: DESC table_name; // 查看表结构
SHOW CREATE TABLE table_name; // 查看创建过程

3.>修改表结构: 1>>. 增加列(字段):
ALTER TABLE table_name
ADD col_name type FIRST // 头插
ADD col_name type AFTER col_1 // col_1之后插
ADD col_name type; // 尾插
2>>. 修改列(字段)类型,约束条件:
ALTER TABLE table_name MODIFY col_name type constraints;
3>>. 修改列(字段):
ALTER TABLE table_name CHANGE col_name new_name type;
4>>. 删除一列(字段):
ALTER TABLE table_name DROP col_name;
5.>删除表: DROP TABLE table_name;


6>. 外键约束: 创建完charger_id后另起一行加FOREIGN KEY (charger_id) REFERENCES ClassCharger(id) ON 删除方式
)ENGINE=INNODB;
外键约束对子表的含义: 如果在父表中找不到候选键,则不允许在子表上进行insert/update
外键约束对父表的含义: 父表进行DELETE时,取决与子表定义外键时指定的ON操作
ON DELETE CASCADE; // 父表删除,子表对应记录删除
ON DELETE SET NULL; // 父表删除,子表对应记录为NULL

7>. 索引:
1>>. 普通索引(默认主键索引): INDEX (charger_id);
2>>. 唯一索引: UNIQUE INDEX (charger_id);
3>>. 组合索引: INDEX(id, name, age); // 效率比唯一索引低
索引设计原则:
1. 最适合的索引列, 出现在WHERE中和连接句子中的列
2. 使用唯一索引,索引列的基数越大,索引效果越好,因此往往用unique列做索引
3. 使用短索引,尽量缩短index(col(length))length
4. 使用组合索引


*/

/*
DML: INSERT, UPDATE, DELETE, SELECT
1. 增加记录: INSERT INTO table_name (field1, field2,...) VALUES
(value1, value2,...),
(value1, value2,...);
* field 非必要的可缺省
* 全部添加,field整个可缺省
INSERT INTO table_name SET field1=value1,..;
2.

转载于:https://www.cnblogs.com/lancelotxly/p/10853582.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值