目录
1.使用命令查看数据库中某个表的信息(use、set、select)
一、基本语句(增删改查)
SQL对大小写不敏感!
2、在每条sql语句末端使用分号!
Navicat常用操作快捷键:
Ctrl+Q、Ctrl+N 打开查询窗口
Ctrl+/ 注释sql语句
Ctrl+Shift +/ 解除注释
Ctrl+R 运行查询窗口的sql语句
F6 打开一个mysql命令行窗口
Ctrl+L 删除一行
Ctrl+W 关闭一个查询窗口
运行已选择的命令的快捷键: ctrl + shift + r
查看数据库状态:(stop、start、status、restart)
systemctl status mysqld.service
查看指定目录-文件大小 : du -sh 文件名或目录名
1.使用命令查看数据库中某个表的信息(use、set、select)
Show databases; //显示可用的数据库
Use crius; //选择名为crius的数据库
Set names utf8; //设置使用的字符集
Select * from crius_area_dictionary; //读取crius_area_dictionary表的所有信息
2.select语句(查)
用来读取某个表中的数据
格式:select 列名,列名,…. From 表名; //把这个表中的第几列第几列数据读出来
Select * from 表名; //把这个表中的所有数据都读出来
另一种写法: 查看websites表的name列和access_log表的count列数据
Select websites.name , access_log.count from websites, access_log;d
3.select distinct语句
在使用select查找表中指定列的数据的时候,这个列中可能有很多重复的数据,使用select distinct可以把重复的数据去掉。
比如说area表中有一列country有很多重复的国家在里面,想要去掉重复的,则
Select distinct country from area;
4.Where语句(查)
跟select结合使用,筛选满足某个条件的记录。

And:同时满足多个条件的值
Or: 满足其中一个条件的值
Not:满足不包含该条件的值
Is null: 判断某个列中的空值
between and :在,,,之间的值
In :某个列中的多个值
Like:模糊查找
比如M为要查询的模糊信息,通配符如下:
%M%: 查询包含M的所有内容
M%: 查询以M为开头的
练习:
- 搜索表中empno等于100的数据;
Select * from emp where empno = 100;
- 查询emp表中sal列中大于2000小于3000的值;
Select * from emp where sal > 2000 and sal < 3000;
- 查询emp表中sal大于2000或comn大于500的值;
Select * from emp where sal > 2000 or sal > 500;
- 使用not,查询emp表中sal小于等于100的值
Select * from emp where not sal >100;
- 查询emp表中comm列中的空值;
Select * from emp where comn is null;
- 查询emp表中id列中值在1-10范围内的数据(包含1和10)
Select * from emp where id between 1 and 10;
- 查询emp表中sal列中等于5000,3000,1500的值(一个列中有多个可能的值)
Select * from emp where sal in (5000,3000,1500);
- 查询emp表中ename列中以海口市开头的数据;
Select * from emp where ename like ‘海口市%’;
- 查询emp表中ename列中包含海南的数据;
Select * from emp where ename like ‘%海南%’;
5.order by语句
对某个列进行升序或降序排列
格式:select * from table order by column_name, column_name ASC|DESC
默认按照升序排列,DESC为降序。
练习:
从websites表中选取所有数据,并按照“alexa”列降序排列。
Select * from websites order by alexa desc;
6.update set语句(改)
修改表中已经存在的数据
Update xxx set xxx
格式:
Update 表名 set 列名=要修改的值 where 要修改的是哪一行
练习:
修改websites表中id为13的数据,把name原来为iflytek改成IFLYTEK
Update websites set name=’IFLYTEK’ where id = 13;
在进行修改操作时,如果忽略where语句,则没有指定要修改的行,表中所有的数据都会被修改。所以修改时一定不能忽略where语句,可以通过设置sql_safe_updates这个参数来进行安全检查,不携带where就会报错。 Set sql_safe_updates = 1;
7.delete from语句(删)
删除表中的行
格式:
Delete from table_name where 删除条件。
注: 如果不加where条件,则会把表中所有数据全部删除,删除时一定要加where指定要删除的是哪行数据。
练习:
删除表中第4,5,10行的数据
Delete from websites where id =4 or id =5 or id =10;
删除所有数据
Delete from websites; //此操作会删除表中所有行,保留表结构、属性、索引
8.as 别名
给列起别名
写法1:select name as n from reg_task; //加as ,后面跟别名
写法2:select name n from reg_task; //不加as,后面直接跟别名
给查询的表起别名
Select rt.name, rt.age from reg_task W;
二、高级用法
1.Limit、select top、rownum 语句
用来返回查询的显示的前几行数据。
Mysql中使用limit语句、
Sql server使用select top语句、
Orical使用rownum语句
下面为mysql用法:
查询websites表显示前两行数据:
Select * from websites limit 2;
查询websites并按照降序排列,只显示前3行数据:
Select * from websites order by id desc limit 3;
2.in操作符
使用in可以在where条件中规定多个值
语法:select column_name from table_name where column_name in(1,2,3,,,,,)
练习:
在websites表中选取名字为“张三”或“李四”的所有数据
Select * from websites where name in(“张三”, “李四”);
3.inner join(连接)on
A表和B表满足匹配条件时返回行
INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 "Websites" 表中的行在 "access_log" 中没有匹配,则不会列出这些行。
比如有A表和B表,A和B之间通过id关联,通过A的id找到B的id对应的行,现将两个表关联起来,查找两个表中需要的数据。
不使用inner join 的方法(只使用where筛选):
Select websites.name, access_log.count, access_log.date from websites, access_log where websites.id = access_log.site_id;
使用inner join的方法:
格式:select 要显示的列名 from A表 inner from B表 on 要满足的条件
Select websites.name, access_log.count, access_log.date from websites inner join access_log on websites.id = access_log.site_id;
4.left join和right join
Left join:左表数据和右表数据匹配,左表要匹配的数据在右表有,则返回行,左表要匹配的数据在右边没有,则返回左表的数据,同时右表的数据返回null
Right join: 相反
5、union语句
用于合并多个select语句,要求列数、列的数据类型、列的顺序要一样。
语法:
Select column from table1 union select column from table2;
使用union,会选取不同的值,重复的不会选取,如果要选取重复的,使用union all
练习:
1、从websites和apps表中选取所有不同的country
Select country from websites
Union
Select country from apps
Order by country;
2、从websites和apps表中选取所有的country(也包括重复的值)
Select country from websites
Union all
Select country from apps
Order by country;
3、从所有的表中选取国家是中国的数据
Select country, name from websites where country=’CN’
Union all
Select country ,name from apps where country =’CN’;
6、把一个表的数据和结构复制到另一个表
(该操作仅针对mysql,其他sql自行百度)
create table test1
as
select id , name, url from websites; //创建表test1,结构和数据复制自websites表。
7.create table
用于创建数据库中的表
格式:
Create table table_name
(
Column_name1 data_type(size),
Column name2 data_type(size),
Column name3 data_type(size),
……….
);
Column_name表示创建的表的列名,
Data_type表示该列的数据类型,
Size表示改列的最大长度。
练习:
创建一个名为Person的表,包含:ID,LastName,FirstName,Address和city五个列
Create table Person
(
ID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
8、数据库备份mysqldump
使用命令实现数据库备份、还原。
比如备份runnood数据库,
备份:
将runnood数据库的表结构和数据都备份到runnood.sql中
Mysqldump -uroot -p runnood > /iflytek/server/backup/runnood.sql
![]()
还原:
Mysql -uroot -p runnood < runnood.sql
![]()
9、数据库定时备份
创建数据库备份文件夹,备份路径
![]()
在/usr/sbin下新建可执行文件,输入可执行命令,并赋权

![]()
![]()
`date +%Y%m%d` 中的` `是esc下面的那个,date和+之间有空格,表示date日期以指定格式显示
之后是两条备份runnood和test_1数据库的备份命令
查看定时任务crond状态
这篇博客详细介绍了SQL的基本语句,包括查看数据库信息、SELECT查询、DISTINCT、WHERE条件、ORDER BY排序、UPDATE修改、DELETE删除以及AS别名。此外,还探讨了高级用法,如LIMIT、IN操作符、JOIN、UNION等,适合SQL初学者学习。

495

被折叠的 条评论
为什么被折叠?



