VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 数据库 > MongoDB >
  • 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;
 

相关教程