-
Mysql基本语句
Mysql基本语句
1.从编译器进入到mysql
$mysql -u username -p
以下为进入mysql后的sql语句
2.显示当前所有的数据库
>show databases;
3.切换至某个数据库下
>use db_name;
4.显示当前数据库下所有的表
>show tables;
5.创建数据库
>create datebase db_name;
6.创建表
>create table tbl_name(col_name1 col_type not null primary key,col_name2 col_type,……);(需前切换至某一数据库中)
6.1 删除表
>drop table tbl_name;
7.显示表中所有的数据
>select * from tbl_name;
8.向表中插入字段值
> insert into tbl_name values(value1,value2,value3,……);(表的每个字段都插入对应的值)
> insert into tbl_name(col_name1,col_name3,……) values(value1,value3,……);(将字段1与字段3的值插入表中)
9. 显示表每个字段的含义
>describe tbl_name;
10.修改原字段的名字、类型及位置
>alter table tbl_name change col_name new_col_name new_col_type not null/null after col_name;
11.删除某个字段
>alter table tbl_name drop col_name;
12.在某个字段后添加新的字段
>alter table tbl_name add col_name col_type not null/null after col_name;
13.修改表名
>alter table tbl_name rename to new_tbl_name;
14.删除表中某个字段对应的行
>delete from tbl_name where col_name=values;
15.将表从a数据库复制到b数据库中
方法一:(该方法不能复制主键、索引等)
>create table new_tbl_name select * from b.old_tbl_name;(复制数据,需use b)
>create table new_tbl_name select * from b.old_tbl_name where 1<>1;(复制结构,需use b)
方法二:(该方法即复制结构又复制数据,还能将主键及索引复制至新表)
>show create table a.old_tbl_name;(得到数据库a中就表的建表语句)
>建新表new_tbl_name (使用上面得到的建表语句)
>insert into new_tbl_name (select * from a.old_tbl_name); (use b)
16.为字段设置自增功能
>create table tbl_name(id int not null primary key auto_increment,col_name2 col_type,……);
17.为字段建立索引
>create index idx_name on tbl_name(col1,col2,……);(可以为一个字段建立索引,也可为多个字段建立索引)
18.清空表中的所有数据
方法一:(表中具有自增的字段,在表删除后不能从1开始自增,接着删除前的序号开始自增)
>delete from tbl_name;
可以用以下方法设置自增的字段
>alter table tbl_name auto_increment=1;
方法二:(不存在方法一的问题,自增的字段的序号从1开始自增)
>truncate table tbl_name;
19.删除表的主键
>alter table tbl_name drop primary key;
20.为表的某个字段设置为表的主键
>alter table tb_name add primary key(col_name);(如果添加为主键的字段在表中存在相同的记录,则需删除记录后操作,否则无法设置该字段为主键)
21.筛选表中某个字段的不重复的值
>select col_name from tbl_name group by col_name having count(col_name)>1;
22.多个字段作为表的主键
>alter table tbl_name add primary key(col_name1,col_name2);
23.按年月查询字段
>假如我有一张表test,字段为 id date_submit 两个字段。数据如下:
id date_submit
1 2007-11-13 07:32:14
2 2007-11-14 10:32:14
3 2007-11-16 10:32:14
4 2007-12-14 10:32:14
5 2007-12-16 10:32:14
6 2008-07-10 10:32:14
>select * from test where year(date_submit)=2007 and month(date_submit)=11;
24.修改表中的键值
将col_name2对应的col_name1的键值修改为abc
>update tbl_name set col_name1='abc' where col_name2='values'/col_name like/not like ‘%string%’;
'%string%'为模糊查询;
25.备份数据库
>mysqldump -u 用户名 -p 数据库名 > 导出的文件名 (导出整个数据库)
>mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名(导出某个数据库的某个表)
26.导入数据库
方法一:
>mysql -u 用户名 -p 数据库名 < 需导入的文件名
方法二:
>进入数据库控制台mysql -u root -p
>use 数据库
>source 需导入的文件名
27.更换mysql的用户名密码
>进入数据库控制台mysql -u root -p (安装后的root的默认密码为空)
>use mysql; (使用databases:mysql)
>update user set password=PASSWORD('newpassword') where user='username'; (eg:update user set password=PASSWORD('123456') where user='root')
28.为mysql增加新的用户
>grant ALL PRIVILEGES ON *.* TO judy@"%" ; (为数据库增加新的用户:grant 权限 on 数据库 to 用户名@主机名)
>update user set password=PASSWORD('newpassword') where user='judy'; (为用户名judy设置密码)
29.mysql子查询
>select mac1 from (select mac AS mac1, rdate AS rdate1, project AS project1 from moblin_users_info group by mac) as sb where year(rdate1)=2010 and month(rdate1)=5 and project1='asus-eeepc';
30.将本地文件的数据导入到数据表中
>load data local infile '/path/filename' into table table_name; (其中filename的内容每行都按数据表的属性排列好,空用“\N”表示)
31.使用用户变量
>select @min_price:=min(price), @max(price):=max(price) from tbl_name;
>select * from tbl_name where price=@min(price) or price=@max(price);
32.对查询出来的数据进行排序
> select * from LocalCityList where lon<10 and lon >6 and lat>54 and lat<58;
DK|1|9.85|57.117|North Jutland|cityId:646787|2|Aalborg|EUR|DK|DA007|AALBORG|Denmark
DK|1|8.44918|55.46715|South Denmark|cityId:126311|894|Esbjerg|EUR|DK|DA008|ESBJERG|Denmark
DK|1|9.75366|55.56568|South Denmark|cityId:126124|957|Fredericia|EUR|DK|DA014|FREDERICIA|Denmark
DK|1|9.5|55.3|South Denmark|cityId:648093|1125|Hadserslev|EUR|DK|DA011|HADSERSLEV|Denmark
DK|1|8.97318|56.13848|Central Jutland|cityId:124443|1204|Herning|EUR|DK|DA009|HERNING|Denmark
DK|1|9.98127|57.46345|North Jutland|cityId:124786|1229|Hjoerring|EUR|DK|DA007|HJOERRING|Denmark
> select ((lon-8)*(lon-8)+(lat-56)*(lat-56)), lon, lat, cityid from LocalCityList where lon<10 and lon >6 and lat>54 and lat<58 order by ((lon-8)*(lon-8)+(lat-56)*(lat-56)) ASC limit 5;
0.485691794900004|8.44918|55.46715|cityId:126311
0.508240060199999|8.61539|56.35991|cityId:124444
0.966256022799999|8.97318|56.13848|cityId:124443
1.3641516136|9.02194|56.5655|cityId:124446
2.1710602333|9.40203|56.45318|cityId:124449
order by 后可以只对table中的某一个column排序 order by column1;
也可以对多个column排序 order by column1, column2;
order by 后的对象也可以是一个表达式order by (colunm1+column2)
33. 对查询条件设置不区分大小写
sqlite> select * from table1 where username='User1' COLLATE NOCASE;
将会把数据库中username='User1'以及这几个字符所对应的所有的非大小的列显示出来。
34. 排序[DESC]是指从大到小排列,若没有指明[ASC],则是从小到大
35.select条件语句中含有 单引号 的处理方式:
对单引号进行转义,也就是把单引号转换成两个单引号
如需要查询name 的值为Xi'an, 只需使用如下的语句即可
select * from Table where name='xi''an'; (使用单引号将单引号转义)
36.数据库中连接符号的使用
在MYSQL中字符串连接使用的是concat内置函数,
可以写为:select * from myDB where name =concat('a','bc');
在SQL Server中字符串连接用+号,可以写为:select * from myDB where name ='a'+'bc' ;
在Oracle或者sqlite中字符串连接用的是||号,可以写成:select name||id from myDB;
1.从编译器进入到mysql
$mysql -u username -p
以下为进入mysql后的sql语句
2.显示当前所有的数据库
>show databases;
3.切换至某个数据库下
>use db_name;
4.显示当前数据库下所有的表
>show tables;
5.创建数据库
>create datebase db_name;
6.创建表
>create table tbl_name(col_name1 col_type not null primary key,col_name2 col_type,……);(需前切换至某一数据库中)
6.1 删除表
>drop table tbl_name;
7.显示表中所有的数据
>select * from tbl_name;
8.向表中插入字段值
> insert into tbl_name values(value1,value2,value3,……);(表的每个字段都插入对应的值)
> insert into tbl_name(col_name1,col_name3,……) values(value1,value3,……);(将字段1与字段3的值插入表中)
9. 显示表每个字段的含义
>describe tbl_name;
10.修改原字段的名字、类型及位置
>alter table tbl_name change col_name new_col_name new_col_type not null/null after col_name;
11.删除某个字段
>alter table tbl_name drop col_name;
12.在某个字段后添加新的字段
>alter table tbl_name add col_name col_type not null/null after col_name;
13.修改表名
>alter table tbl_name rename to new_tbl_name;
14.删除表中某个字段对应的行
>delete from tbl_name where col_name=values;
15.将表从a数据库复制到b数据库中
方法一:(该方法不能复制主键、索引等)
>create table new_tbl_name select * from b.old_tbl_name;(复制数据,需use b)
>create table new_tbl_name select * from b.old_tbl_name where 1<>1;(复制结构,需use b)
方法二:(该方法即复制结构又复制数据,还能将主键及索引复制至新表)
>show create table a.old_tbl_name;(得到数据库a中就表的建表语句)
>建新表new_tbl_name (使用上面得到的建表语句)
>insert into new_tbl_name (select * from a.old_tbl_name); (use b)
16.为字段设置自增功能
>create table tbl_name(id int not null primary key auto_increment,col_name2 col_type,……);
17.为字段建立索引
>create index idx_name on tbl_name(col1,col2,……);(可以为一个字段建立索引,也可为多个字段建立索引)
18.清空表中的所有数据
方法一:(表中具有自增的字段,在表删除后不能从1开始自增,接着删除前的序号开始自增)
>delete from tbl_name;
可以用以下方法设置自增的字段
>alter table tbl_name auto_increment=1;
方法二:(不存在方法一的问题,自增的字段的序号从1开始自增)
>truncate table tbl_name;
19.删除表的主键
>alter table tbl_name drop primary key;
20.为表的某个字段设置为表的主键
>alter table tb_name add primary key(col_name);(如果添加为主键的字段在表中存在相同的记录,则需删除记录后操作,否则无法设置该字段为主键)
21.筛选表中某个字段的不重复的值
>select col_name from tbl_name group by col_name having count(col_name)>1;
22.多个字段作为表的主键
>alter table tbl_name add primary key(col_name1,col_name2);
23.按年月查询字段
>假如我有一张表test,字段为 id date_submit 两个字段。数据如下:
id date_submit
1 2007-11-13 07:32:14
2 2007-11-14 10:32:14
3 2007-11-16 10:32:14
4 2007-12-14 10:32:14
5 2007-12-16 10:32:14
6 2008-07-10 10:32:14
>select * from test where year(date_submit)=2007 and month(date_submit)=11;
24.修改表中的键值
将col_name2对应的col_name1的键值修改为abc
>update tbl_name set col_name1='abc' where col_name2='values'/col_name like/not like ‘%string%’;
'%string%'为模糊查询;
25.备份数据库
>mysqldump -u 用户名 -p 数据库名 > 导出的文件名 (导出整个数据库)
>mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名(导出某个数据库的某个表)
26.导入数据库
方法一:
>mysql -u 用户名 -p 数据库名 < 需导入的文件名
方法二:
>进入数据库控制台mysql -u root -p
>use 数据库
>source 需导入的文件名
27.更换mysql的用户名密码
>进入数据库控制台mysql -u root -p (安装后的root的默认密码为空)
>use mysql; (使用databases:mysql)
>update user set password=PASSWORD('newpassword') where user='username'; (eg:update user set password=PASSWORD('123456') where user='root')
28.为mysql增加新的用户
>grant ALL PRIVILEGES ON *.* TO judy@"%" ; (为数据库增加新的用户:grant 权限 on 数据库 to 用户名@主机名)
>update user set password=PASSWORD('newpassword') where user='judy'; (为用户名judy设置密码)
29.mysql子查询
>select mac1 from (select mac AS mac1, rdate AS rdate1, project AS project1 from moblin_users_info group by mac) as sb where year(rdate1)=2010 and month(rdate1)=5 and project1='asus-eeepc';
30.将本地文件的数据导入到数据表中
>load data local infile '/path/filename' into table table_name; (其中filename的内容每行都按数据表的属性排列好,空用“\N”表示)
31.使用用户变量
>select @min_price:=min(price), @max(price):=max(price) from tbl_name;
>select * from tbl_name where price=@min(price) or price=@max(price);
32.对查询出来的数据进行排序
> select * from LocalCityList where lon<10 and lon >6 and lat>54 and lat<58;
DK|1|9.85|57.117|North Jutland|cityId:646787|2|Aalborg|EUR|DK|DA007|AALBORG|Denmark
DK|1|8.44918|55.46715|South Denmark|cityId:126311|894|Esbjerg|EUR|DK|DA008|ESBJERG|Denmark
DK|1|9.75366|55.56568|South Denmark|cityId:126124|957|Fredericia|EUR|DK|DA014|FREDERICIA|Denmark
DK|1|9.5|55.3|South Denmark|cityId:648093|1125|Hadserslev|EUR|DK|DA011|HADSERSLEV|Denmark
DK|1|8.97318|56.13848|Central Jutland|cityId:124443|1204|Herning|EUR|DK|DA009|HERNING|Denmark
DK|1|9.98127|57.46345|North Jutland|cityId:124786|1229|Hjoerring|EUR|DK|DA007|HJOERRING|Denmark
> select ((lon-8)*(lon-8)+(lat-56)*(lat-56)), lon, lat, cityid from LocalCityList where lon<10 and lon >6 and lat>54 and lat<58 order by ((lon-8)*(lon-8)+(lat-56)*(lat-56)) ASC limit 5;
0.485691794900004|8.44918|55.46715|cityId:126311
0.508240060199999|8.61539|56.35991|cityId:124444
0.966256022799999|8.97318|56.13848|cityId:124443
1.3641516136|9.02194|56.5655|cityId:124446
2.1710602333|9.40203|56.45318|cityId:124449
order by 后可以只对table中的某一个column排序 order by column1;
也可以对多个column排序 order by column1, column2;
order by 后的对象也可以是一个表达式order by (colunm1+column2)
33. 对查询条件设置不区分大小写
sqlite> select * from table1 where username='User1' COLLATE NOCASE;
将会把数据库中username='User1'以及这几个字符所对应的所有的非大小的列显示出来。
34. 排序[DESC]是指从大到小排列,若没有指明[ASC],则是从小到大
35.select条件语句中含有 单引号 的处理方式:
对单引号进行转义,也就是把单引号转换成两个单引号
如需要查询name 的值为Xi'an, 只需使用如下的语句即可
select * from Table where name='xi''an'; (使用单引号将单引号转义)
36.数据库中连接符号的使用
在MYSQL中字符串连接使用的是concat内置函数,
可以写为:select * from myDB where name =concat('a','bc');
在SQL Server中字符串连接用+号,可以写为:select * from myDB where name ='a'+'bc' ;
在Oracle或者sqlite中字符串连接用的是||号,可以写成:select name||id from myDB;
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式