浅析:SQL语句及用法

以mysql为例

可使用mysql -u root -p 输入在cmd中后输入密码便可进入

SQl语句

数据库语句

1. 查看现有数据库

show databases;

2. 新建数据库

create database aaa;

3. 选择数据库

use runoob;

4. 从.sql文件引入SQL语句

source

5. 删除数据库

drop database aaa;

6. 查看当前数据库中的表

show tables;

7. 创建新表

在写容量时需要注意容量的大小

create table zhangsan (id int,name varchar(255),sex varchar(255),age int)

ENGINE=InnoDB DEFAULT CHARSET=utf8;

1.得加上面语句要不会报错

create table persons(

id int,

name varchar(255),

city varchar(255) );

2.

CREATE TABLE instructor ( ID CHAR(5), name VARCHAR(20) NOT NULL, dept_name VARCHAR(20), salary NUMERIC(8,2), PRIMARY KEY (ID), FOREIGN KEY (dept_name) REFERENCES department(dept_name));

在上面的例子中,我们创建了一个教员(instructor)表,该表的主键是ID,外键是教员所在的部门名称(dept_name),关联部门(department)表。此外,教员表还包括姓名(name)、薪水(salary)。其中,姓名有约束NOT NULL,表示姓名这一项不能空。

primary key 设置主键,foreing key(a)references name(a);外键关联name表里的a

3.可直接添加值

8. 概述表中的列

describe instructor;

9. 在表中插入新纪录

1.insert into name(id,name,sex,age)values(1,"张三","生产部",3600);

2.insert into name values(2,"aaaa","bbbbbbbb",13);//不写键时values值会默认顺序插入

10. 在表中更新记录

update name set name="b",sex="aaa" where id=2;

where为条件不设立的情况下表示更新所有数据

2.两个表a、b,想使b中的Name1字段值等于a表中对应id的name2值  

update   b  set  Name1   =   a.name2   from   a,b   where   a.id   =   b.id

11. 清空表

delete from persons;

清除表里的所有数据保留表文件

12. 删除表

drop table persons;

删除表文件

查询

select * from name;

在name表中找出所有的内容

select id,name from name;

在name表中找到id与name列;

 

14. SELECT DISTINCT

select distinct id,name from name;

过滤掉重复的值,当有两个列时只有两个列都有重复的值时才会被过滤

 

15. WHERE

通常是在指定一些特定条件时使用

可用于比较文本(text)数字(number)逻辑关系(and,or,not)

=,,=,<>(不等于!=),between(在什么之间),like(),in(为一列添加多个保证)

select * from name where name in ("a","b");

 

 

select * from name where age betweeb 13 and17;

16. GROUP BY

用于结合合计函数,常用于COUNT、MAX、MIN、SUM、AVG等聚合函数aggregate functions)

 

 

mysql> select id,sex,age from name group by id;

相当于把id查找后的进行分组去除重复的id

17. HAVING

having 与where最大的不同在于having是对group by进行设置条件

where是对行进行操作而经过了group by后是生成了表不可以在使用where

mysql> select id,sex,age from name group by id having age>15;

 

18. ORDER BY

对输出的结果进行一个排序没指明的情况下默认升序排(ASC(升序)或DESC(降序))

select * from name order by age Desc;

可对字母的字符串进行一个比对大小后进行升降排序

 

19. BETWEEN

between语句适用于指定区间

mysql> select * from name where name between "a" and "c";

在a,c之间 数值、文本或者日期。

 

20.注解like 运算符

在句子中使用运算符在列中搜索指定的模式:like where

通配符与运算符结合使用:通配符%(表示0与一个或者多个字符)_(表示一个单个字符)

运算符 and or

例如:select * from table where name like “ A%”

  1. "A%"选择以A开头的所有name
  2. “%A”选择以A结尾的所有name
  3. “%or%”选择具有name且在任何位置具有or的name
  4. “_r%”选择所有第二个位置为人的name
  5. 'a__%'选择以a开头且长度至少为3的naem
  6. 'a%o'选择所有以a开头o结尾的name

eg:

select *from table where name not like “a%” //选择不以a开头的所有name

21. IN

在where语句中添加过滤条件

select * from name where name in(a,b);

在设定name条件后在查找name为a与b的值

 

22. JOIN

当我们的结果要从两个或者多个里面查找时使用join进行连接建立

数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。

要在两个表都存在主键时使用

 

select * from name join name2 on name.id=name2.id ;列出所有内容

select *from name left outer join name2 on name.id=name2.id;

23. 视图

视图(view)是虚拟的SQL表。它包含行和列,和一般的SQL表格很类似。视图总是显示数据库中的最新数据

create view;

24. 聚合函数

我们之前已经提到聚合函数,这里列出最常用的一些聚合函数:

  • COUNT(列名) 返回行数
  • SUM(列名) 返回指定列的值之和
  • AVG(列名) 返回指定列的平均值
  • MIN(列名) 返回指定列的最小值
  • MAX(列名) 返回指定列的最大值

25. 嵌套子查询

在SQL中查询在嵌套查询使用select-from-where

SELECT DISTINCT course_id

FROM section

WHERE semester = ‘Fall’ AND year= 2009 AND course_id IN (

SELECT course_id

FROM section

WHERE semester = ‘Spring’ AND year= 2010

);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值