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_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

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐