SQL基本结构化查询语句
2016-06-07 21:44
344 查看
SQL基本结构化查询语句
以前学过一段时间的SQL Server,两年没用过几乎连基本的增删改查都写不来了,全还给体育老师了。最近准备把关系型数据库的内容重新捡起来,想等掌握这块之后再找个NoSQL的数据库学一下非关系型的。
本博文主要介绍MySQL中基本的结构化查询语句。虽然都是关系型的数据库但是MySQL和SQLServer包括Oracle以及其它同类型数据库还是有差别的,具体可以参考知乎上关于这个问题的回答。
====================================================================================================================================
MySQL可储存的数据类型
MySQL中可存储的数据类型 | ||
字符型 | CHAR | 适用于文本型数据且长度要和事先设定的长度相等 |
VARCHAR | 适用于文本型数据,最大存储长度可达255个字符,比CHAR要灵活,可根据实际数据调整(只要不超过设置的字符长度即可) | |
BLOB | 适用于大量文本类型数据 | |
DATE | 记录日期类型的数据(不包括事件) | |
DATETIME | 记录日期和时间类型的数据 | |
数值 | INT | 适用于整型数值 |
DEC | 适用于带小数点的数据 |
MySQL中穿件数据库/数据表都是用CREATE关键字:
CREATE DATABASE your_database;
创建完数据库之后需要申明使用该数据库,可通过USE关键字实现:
USE your_database;
随后即可以在该数据库中创建相关的数据表:
CREATE TABLE your_table( field_1 type_1, field_2 type_2, field_3 type_3 );
创建数据表时除了可以对字段进行类型的定义外还可以设定主键(PRIMARY KEY),设定自增(AUTO_INCREMENT)属性,设定非NULL(not null)等属性。
查看数据表信息
MySQL可用DESC查看数据表的信息:
DESC my_contacts;
Field | Type | Null | Key | Default | Extra |
id | int(11) | NO | PRI | NULL | auto_increment |
last_name | varchar(20) | NO | NULL | ||
first_name | varchar(30) | NO | NULL | ||
varchar(50) | NO | NULL | |||
birthday | date | NO | NULL | ||
gender | char(1) | NO | NULL | ||
profession | varchar(50) | NO | NULL | ||
location | varchar(50) | NO | NULL | ||
status | varchar(20) | NO | NULL | ||
interests | varchar(100) | NO | NULL | ||
seeking | varchar(100) | NO | NULL |
MySQL中删除数据库/表/列都可以用DROP关键字:
DROP DATABASE your_database; DROP TABLE your_table;
删除列需要结合ALERT,见后文。
SELECT
SELECT语句是最常用的结构化查询语句之一:
SELECT * FROM your_table; #将数据表中所有字段下的数据都筛选出来 SELECT field1,field2,… FROM your_table; #将特定字段下的数据筛选出来 SELECT field1,field2,… FROM your table WHERE condition1,… #结合WHERE关键字筛选出符合条件的数据 # SELECT还可以与SUM,AVG,CASE,RIGHT,LEFT,SUBSTRING,GROUP BY, ORDER BY…等函数和关键字组合搭配使用
DELETE
DELETE语句用与删除记录(行):
DELETE FROM your_table WHERE condition1,…; #删除符合条件的记录(行)
INSERT
INSERT关键字可以用来往现有数据表中添加新的纪录:
INSERT INTO your_table (field1, field2, …) VALUES (content1, content2, …); #往表中添加对应于字段1,字段2,…的记录 INSERT INTO your_table VALUES (content1, content2, …); #往表中添加对应所有字段的记录,添加的content的数目要等于全部字段数 INSERT INTO your_table (field1, field2) VALUES (content1, content2); #往表中添加相应字段的记录 #当要输入的记录中包含撇号(’)时,需要使用“\”转义符号,如 INSERT INTO contacts (first_name, last_name, greeting) VALUES (“Jenchih”, “Ho”,“Hello, I\’m Jenchih.”); #“I\’m”即为I’m
UPDATE
对于现有的数据表如果需要更新内容则可以使用UPDATE关键字:
UPDATE your_table SET field = value ; #更新字段的值 #可以结合WHERE,OR,AND,RIGHT,LEFT,SUBSTRING等关键字和逻辑运算符可以对表进行有条件的更新
ALERT
ALERT关键字可用于调整现有数据表的结构:
ALERT TABLE your_table RENAME TO new_my_contacts; #更改表的名字 ALERT TABLE your_table ADD COLUMN newfield1 type and_other_attributes; #在现有数据表中添加新的字段(列),可以结合FIRST、SECOND等关键字限定所添加列的位置 ALERT TABLE your_table CHANGE COLUMN field1 new_field1 type and_other_attributes; #更改现有字段名字并且重新设定其相关属性 ALERT TABLE your_table MODIFY COLUMN field1 type and_other_attributes; #更改现有字段的属性 ALERT TABLE your_table DROP COLUMN field1; #删除现有字段
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复