欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL简单介绍和语法使用

程序员文章站 2022-03-23 20:41:08
SQL简单介绍 SQL 是用于访问和处理数据库的标准的计算机语言。被称为 select * from stu where name='zhangsan' a...

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_name
select 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_value
SELECT 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