以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%”

"A%"选择以A开头的所有name“%A”选择以A结尾的所有name“%or%”选择具有name且在任何位置具有or的name“_r%”选择所有第二个位置为人的name'a__%'选择以a开头且长度至少为3的naem'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

);

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: