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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NUC小学生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值