SQL简单介绍和语法使用
SQL简单介绍
SQL 是用于访问和处理数据库的标准的计算机语言。被称为
select * from stu where name='zhangsan' and sex='man';
结构化查询语言 Structured Query Language
SQL 语法
使用mysql的话,首先使用自带的数据库,use test 命令 或者是使用 use 自己创建的数据库。
mysql>use test; Database changed mysql> set names utf-6; Query OK,0 rows affected(0.00 sec)
SELECT 语句 查询语句
select colume_name,colume_name from table_name
select * from table_nameselect distinct语句 主要是用于返回唯一不同的值
select distinct colume_name,colume_name from table_name
where 字句 判断的字句
operator : = <> > < >= <= between and like in
select * from wherer column_name operator value;AND & OR
select * from student where name='zs' and sex='nan';order by 关键字 按照某个规则进行排序
select * from student order by age DESC,name ASC(升序);INSERT INTO 插入数据
insert into table_name values(value1,value2....);
insert into table_name (column1,column2...) values (value1,value2...);
UPDATE 更新数据
update tbale_name set column1=value1,cloumn2=value2 where some_column=some_value;
DELETE 删除数据
注意:drop truncate delete
drop:删除表 并释放空间 将表删除的干干净净
truncate:删除表里面的内容 释放表空间 表的结构还在 delete:删除指定数据 或者整个表的数据 表空间继续在
delete from table_name where some_colume =some_valueSELECT TOP LIMIT ROWNUM
select * from studnet where age between 25 and 35;
select top number column_name from table_name 要返回记录的数目
select * from sutdent limit (2,1) 从第二个开始 显示一个LIKE 操作符 REGEXP 正则
select * from student where name like '%san'; _表示一位 %表示多位
select * form student where name REFEXP '^[A-H]'; 选取name以A-H字母开头的名字IN 操作符
select * from student where name in ('zhang','lisi');
BETWEEN 操作符
select * from student where age between 25 and 43 ;
SQL 别名
select name 姓名 ,age as 年龄 from studnet;
SQL 连接 JOIN UNION 操作符 选取不同的值 如果允许重复的值 请使用UNION ALL
select country from web union all select country form apps order by country 查找web表跟apps表中国家所有的集合 里面有重复
INNER JOIN:如果表中有至少一个匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中一个表中存在匹配,则返回行
select * from student ,score where inner join studnet,id on score.id;
SQL SELECT INTO 从一个表的信息复制到另一个表 新表
select * into newtable from table;
select column_name(s) into newtable from table;Sql INSERT INTO SELECT 从一个表复制信息到另一个表 已存在的表
insert into table2 select * from table1
insert into table2 (column_name) select column_name from table1;
CREATE DATABASE 创建数据库
CRETE TABLE 创建表
CREATE TABLE table_name ( column_name1 data_type(size), column_name2 data_type(size), column_name3 data_type(size), .... );
SQL CONSTRAINTS 约束
CREATE TABLE table_name ( column_name1 data_type(size) constraint_name, column_name2 data_type(size) constraint_name, column_name3 data_type(size) constraint_name, .... );
NOT NULL - 指示某列不能存储 NULL 值。
UNIQUE - 保证某列的每行必须有唯一的值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
CHECK - 保证列中的值符合指定的条件。
DEFAULT - 规定没有给列赋值时的默认值。
Name varchar(255) NOT NULL,
P_id int NOT NULL UNIQUE, ALTER TABLE STU ADD UNIQUE (p_id)
命名约束 new——name
ALTER TABLE STU ADD CONSTRAINT NEW_name UNIQUE (p_id)
P_id int PRIMARY KEY(P-id)
ALTER TABLE STU ADD PRIMARY KEY (p_id)
FOREIGN KEY (p_id) REFERENCES STU1(p-id) CONSTRAINT NEWNAME FOREIGN KEY (p-id) REFERENCES STU1(pid)
ALTER TABLE ADD FORIGN KEY PID REFERENCES STU2(pid)
CHICK (p_id>0) CONSRAINT NEWNAME CHECK (pid?>0) ALTER TABLE STU ADD CHECK(pid)
name varchar(255) DEFAULT 'SSS' ALTER TABLE STU ALTER COLUMN NAME SET DEFAULT 'ZHANGSAN'
DCREATE INDEX 创建索引
create index index_name on table_name(column_name)
创建唯一索引 不允许使用重复的值 :唯一的索引意味着两个行不能拥有相同的索引 create unique index index_name on table_name(column_name)
create index index_name on table_name(column_name1,column_name2)
撤销索引 撤销表 撤销数据库 drop、
用于 MS Access 的 DROP INDEX 语法:
DROP INDEX index_name ON table_name
用于 MS SQL Server 的 DROP INDEX 语法:
DROP INDEX table_name.index_name
用于 DB2/Oracle 的 DROP INDEX 语法:
DROP INDEX index_name
用于 MySQL 的 DROP INDEX 语法:
ALTER TABLE table_name DROP INDEX index_name
drop table table_name
drop database database_name
truncate table table_name
Alter table 语法
alter table table_name modify column_name datatype; 修改列的数据类型
alter table table_name add column_name datatype; 添加列SQL Date 函数
NOW() | 返回当前的日期和时间 |
CURDATE() | 返回当前的日期 |
CURTIME() | 返回当前的时间 |
DATE() | 提取日期或日期/时间表达式的日期部分 |
EXTRACT() | 返回日期/时间的单独部分 |
DATE_ADD() | 向日期添加指定的时间间隔 |
DATE_SUB() | 从日期减去指定的时间间隔 |
DATEDIFF() | 返回两个日期之间的天数 |
DATE_FORMAT() | 用不同的格式显示日期/时间 |
MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:
DATE - 格式:YYYY-MM-DD
DATETIME - 格式:YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式:YYYY-MM-DD HH:MM:SS
YEAR - 格式:YYYY 或 YY