想了解MySql常用查询命令操作大全的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于mysql常用查询命令操作大全的相关问题,此外,我们还将为您介绍关于23个MySQL常用查询语句、23个M
想了解MySql常用查询命令操作大全的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于mysql常用查询命令操作大全的相关问题,此外,我们还将为您介绍关于23个MySQL常用查询语句、23个MySQL常用查询语句,23MySQL常用语句、23个MySQL常用查询语句,23MySQL常用语句_PHP教程、DB_SQLite3命令操作大全的新知识。
本文目录一览:- MySql常用查询命令操作大全(mysql常用查询命令操作大全)
- 23个MySQL常用查询语句
- 23个MySQL常用查询语句,23MySQL常用语句
- 23个MySQL常用查询语句,23MySQL常用语句_PHP教程
- DB_SQLite3命令操作大全
MySql常用查询命令操作大全(mysql常用查询命令操作大全)
MysqL常用查命令:
MysqL> select version(); 查看MysqL的版本号 MysqL> select current_date(); 查看MysqL的当前日期 MysqL> select version(),current_date(); 同时查看MysqL的版本号和当前日期 MysqL> show databases; 显示当前存在的数据库 MysqL> USE MysqL 选择使用数据库(USE和QUIT命令不需要分号结束) Database changed MysqL> select database(); 显示当前选择的数据库 MysqL> show tables; 显示当前数据库中存在的表 MysqL> select * from db; 显示表(db)的内容 MysqL> describe mytable; 显示表的结构
或show columns from 表名;
MysqL> select -> user() -> \c MysqL>
练习如下操作:
MysqL> select -> USER() ->,-> Now() ->; MysqL> Select (20+5)*4; MysqL> Select (20+5)*4,sin(pi()/3); MysqL> Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名为Result)
查看MysqL当前用户占用的连接数
命令: show processlist;
如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。
show processlist;只列出前100条,如果想全列出请使用show full processlist;
MysqL> show processlist;
一。数据库:
MysqL> CREATE DATABASE abccs; 创建一个数据库 MysqL> USE abccs 选择使用数据库 MysqL> drop database 数据库名; 删除数据库
二。表:
1。创建一个表mytable:
MysqL> CREATE TABLE mytable -> ( -> name VARCHAR(20),-> sex CHAR(1),-> birth DATE,-> birthaddr VARCHAR(20) -> );
建立一个员工生日表,表的内容包含员工姓名、性别、出生日期、出生城市。
由于name、birthadd的列值是变化的,因此选择VARCHAR,其长度不一定是20。
可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用ALTER TABLE语句。
性别只需一个字符就可以表示:"m"或"f",因此选用CHAR(1);
birth列则使用DATE数据类型。
2。查询刚添加的记录:
MysqL> select * from mytable;
Empty set (0.00 sec) 这说明刚才创建的表还没有记录。
3。添加新记录:
MysqL> insert into mytable -> values ->( ->'abccs',->'f',->'1977-07-07',->'china' ->);
4。用文本方式将数据装入一个数据库表:
一条一条地添加新记录,实在太麻烦。
创建一个文本文件“MysqL.txt”,按表结构排好每行每条记录,用定位符(tab)把值分开。
abccs f 1977-07-07 china mary f 1978-12-12 usa tom m 1970-09-02 usa
使用此命令将文本文件“mytable.txt”装载到表中:
MysqL> Load data local infile "mytable.txt" into table mytable;
数据传入命令load data local infile
"文件名" into table
表名;
注意:你最好将文件复制到MysqL/bin目录下,并且要先用use命令选表所在的库。
5。更新记录:
MysqL> update mytable set birth = "1973-09-02" where name = "tom";
6。删除记录:
MysqL> delete from mytable where id=10; //删除掉所有id=10的记录; MysqL> delete from mytable where id=10 limit 1; //限制删除掉1条id=10的记录; MysqL> delete from mytable //删除一个表的全部记录; MysqL> DELETE FROM t1 WHERE C>10; MysqL> drop table tablename1,tablename2,…; //删除整一个表或多个表,小心使用。
7。重命名表:
MysqL> alter table t1 rename t2;
8。修改MysqL的表结构:
查看MysqL的表结构:
MysqL> describe mytable; 或用show columns from 表名;
修改字段属性
MysqL> alter table tablename modify id int(10) unsigned auto_increment primary key not null
修改默认值
MysqL> alter table tablename alter id default 0
给字段增加primary key
MysqL> alter table tablename add primary key(id);
删除primary key
alter table tablename drop primary key; drop primary key on tablename;
修改table表数据引擎
MysqL> alter table tableName ENGINE = MyISAM (InnoDB);
增加一新字段名:
MysqL> alter table mytable add column single char(1); MysqL> ALTER TABLE table ADD field INT(11) UNSIGNED NOT NULL
删除字段
MysqL> alter table t2 drop column c;
附:
为了改变列a,从INTEGER改为tinyint NOT NULL(名字一样),
并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:
ALTER TABLE t2 MODIFY a tinyint NOT NULL,CHANGE b c CHAR(20);
增加一个新TIMESTAMP列,名为d:
ALTER TABLE t2 ADD d TIMESTAMP;
在列d上增加一个索引,并且使列a为主键:
ALTER TABLE t2 ADD INDEX (d),ADD PRIMARY KEY (a);
增加一个新的AUTO_INCREMENT整数列,命名为c:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,
并且另外我们声明c为NOT NULL,因为索引了的列不能是NULL。
使用name列的头10个字符创建一个索引:
CREATE INDEX part_of_name ON customer (name(10));
三。数据的备份与恢复:
导出和导入数据:(命令在DOS的MysqL/bin目录下执行)
导出表
MysqLdump --opt school > school.sql
注释:将数据库school中的表全部备份到school.sql文件,school.sql是一个文本文件,
文件名任取,打开看看你会有新发现。
MysqLdump --opt school teacher student > school.teacher.student.sql
注释:将数据库school中的teacher表和student表备份到school.teacher.student.sql文件,school.teacher.student.sql是一个文本文件,文件名任取,打开看看你会有新发现。
导入表
MysqL MysqL>create database school; MysqL>use school; MysqL>source school.sql;
(或将school.sql换为school.teacher.sql / school.teacher.student.sql)
导出数据库
MysqLdump --databases db1 db2 > db1.db2.sql
注释:将数据库dbl和db2备份到db1.db2.sql文件,db1.db2.sql是一个文本文件,文件名
任取,打开看看你会有新发现。
(举个例子:
MysqLdump -h host -u user -p pass --databases dbname > file.dump
就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中。)
导入数据库
MysqL < db1.db2.sql
复制数据库MysqLdump --all-databases > all-databases.sql
注释:将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。
导入数据库
MysqL MysqL>drop database a; MysqL>
23个MySQL常用查询语句
一查询数值型数据:
SELECT * FROM tb_name WHERE sum > 100;
查询谓词:>,=,<,<>,!=,!>,!<,=>,=<
二查询字符串
SELECT * FROM tb_stu WHERE sname = ''小刘''
SELECT * FROM tb_stu WHERE sname like ''刘%''
SELECT * FROM tb_stu WHERE sname like ''%程序员''
SELECT * FROM tb_stu WHERE sname like ''%PHP%''
三查询日期型数据
SELECT * FROM tb_stu WHERE date = ''2011-04-08''
注:不同数据库对日期型数据存在差异: :
(1)MySQL:SELECT * from tb_name WHERE birthday = ''2011-04-08''
(2)SQL Server:SELECT * from tb_name WHERE birthday = ''2011-04-08''
(3)Access:SELECT * from tb_name WHERE birthday = #2011-04-08#
四查询逻辑型数据
SELECT * FROM tb_name WHERE type = ''T''
SELECT * FROM tb_name WHERE type = ''F''
逻辑运算符:and or not
五查询非空数据
SELECT * FROM tb_name WHERE address <>'''' order by addtime desc
注:<>相当于PHP中的!=
六利用变量查询数值型数据
SELECT * FROM tb_name WHERE id = ''$_POST[text]''
注:利用变量查询数据时,传入SQL的变量不必用引号括起来,因为PHP中的字符串与数值型数据进行连接时,程序会自动将数值型数据转变成字符串,然后与要连接的字符串进行连接
七利用变量查询字符串数据
SELECT * FROM tb_name WHERE name LIKE ''%$_POST[name]%''
完全匹配的方法"%%"表示可以出现在任何位置
八查询前n条记录
SELECT * FROM tb_name LIMIT 0,$N;
limit语句与其他语句,如order by等语句联合使用,会使用SQL语句千变万化,使程序非常灵活
九查询后n条记录
SELECT * FROM tb_stu ORDER BY id ASC LIMIT $n
十查询从指定位置开始的n条记录
SELECT * FROM tb_stu ORDER BY id ASC LIMIT $_POST[begin],$n
注意:数据的id是从0开始的
十一查询统计结果中的前n条记录
SELECT * ,(yw+sx+wy) AS total FROM tb_score ORDER BY (yw+sx+wy) DESC LIMIT 0,$num
十二查询指定时间段的数据
SELECT 要查找的字段 FROM 表名 WHERE 字段名 BETWEEN 初始值 AND 终止值
SELECT * FROM tb_stu WHERE age BETWEEN 0 AND 18
十三按月查询统计数据
SELECT * FROM tb_stu WHERE month(date) = ''$_POST[date]'' ORDER BY date ;
注:SQL语言中提供了如下函数,利用这些函数可以很方便地实现按年、月、日进行查询
year(data):返回data表达式中的公元年分所对应的数值
month(data):返回data表达式中的月分所对应的数值
day(data):返回data表达式中的日期所对应的数值
十四查询大于指定条件的记录
SELECT * FROM tb_stu WHERE age>$_POST[age] ORDER BY age;
十五查询结果不显示重复记录
SELECT DISTINCT 字段名 FROM 表名 WHERE 查询条件
注:SQL语句中的DISTINCT必须与WHERE子句联合使用,否则输出的信息不会有变化 ,且字段不能用*代替
十六NOT与谓词进行组合条件的查询
(1)NOT BERWEEN … AND … 对介于起始值和终止值间的数据时行查询 可改成 <起始值 AND >终止值
(2)IS NOT NULL 对非空值进行查询
(3)IS NULL 对空值进行查询
(4)NOT IN 该式根据使用的关键字是包含在列表内还是排除在列表外,指定表达式的搜索,搜索表达式可以是常量或列名,而列名可以是一组常量,但更多情况下是子查询
十七显示数据表中重复的记录和记录条数
SELECT name,age,count(*) ,age FROM tb_stu WHERE age = ''19'' group by date
十八对数据进行降序/升序查询
SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段 DESC 降序
SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段 ASC 升序
注:对字段进行排序时若不指定排序方式,则默认为ASC升序
十九对数据进行多条件查询
SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段1 ASC 字段2 DESC …
注意:对查询信息进行多条件排序是为了共同限制记录的输出,一般情况下,由于不是单一条件限制,所以在输出效果上有一些差别。
二十对统计结果进行排序
函数SUM([ALL]字段名) 或 SUM([DISTINCT]字段名),可实现对字段的求和,函数中为ALL时为所有该字段所有记录求和,若为DISTINCT则为该字段所有不重复记录的字段求和
如:SELECT name,SUM(price) AS sumprice FROM tb_price GROUP BY name
SELECT * FROM tb_name ORDER BY mount DESC,price ASC
二十一单列数据分组统计
SELECT id,name,SUM(price) AS title,date FROM tb_price GROUP BY pid ORDER BY title DESC
注:当分组语句group by排序语句order by同时出现在SQL语句中时,要将分组语句书写在排序语句的前面,否则会出现错误
二十二多列数据分组统计
多列数据分组统计与单列数据分组统计类似
SELECT *,SUM(字段1*字段2) AS (新字段1) FROM 表名 GROUP BY 字段 ORDER BY 新字段1 DESC
SELECT id,name,SUM(price*num) AS sumprice FROM tb_price GROUP BY pid ORDER BY sumprice DESC
注:group by语句后面一般为不是聚合函数的数列,即不是要分组的列
二十三多表分组统计
SELECT a.name,AVG(a.price),b.name,AVG(b.price) FROM tb_demo058 AS a,tb_demo058_1 AS b WHERE a.id=b.id GROUP BY b.type;
23个MySQL常用查询语句,23MySQL常用语句
23个mysql常用查询语句,23mysql常用语句
一查询数值型数据:
select * from tb_name where sum > 100;
查询谓词:>,=,,!=,!>,!,=
二查询字符串
select * from tb_stu where sname = ''小刘''
select * from tb_stu where sname like ''刘%''
select * from tb_stu where sname like ''%程序员''
select * from tb_stu where sname like ''%php%''
三查询日期型数据
select * from tb_stu where date = ''2011-04-08''
注:不同数据库对日期型数据存在差异: :
(1)mysql:select * from tb_name where birthday = ''2011-04-08''
(2)sql server:select * from tb_name where birthday = ''2011-04-08''
(3)access:select * from tb_name where birthday = #2011-04-08#
四查询逻辑型数据
select * from tb_name where type = ''t''
select * from tb_name where type = ''f''
逻辑运算符:and or not
五查询非空数据
select * from tb_name where address '''' order by addtime desc
注:相当于php中的!=
六利用变量查询数值型数据
select * from tb_name where id = ''$_post[text]''
注:利用变量查询数据时,传入sql的变量不必用引号括起来,因为php中的字符串与数值型数据进行连接时,程序会自动将数值型数据转变成字符串,然后与要连接的字符串进行连接
七利用变量查询字符串数据
select * from tb_name where name like ''%$_post[name]%''
完全匹配的方法"%%"表示可以出现在任何位置
八查询前n条记录
select * from tb_name limit 0,$n;
limit语句与其他语句,如order by等语句联合使用,会使用sql语句千变万化,使程序非常灵活
九查询后n条记录
select * from tb_stu order by id asc limit $n
十查询从指定位置开始的n条记录
select * from tb_stu order by id asc limit $_post[begin],$n
注意:数据的id是从0开始的
十一查询统计结果中的前n条记录
select * ,(yw+sx+wy) as total from tb_score order by (yw+sx+wy) desc limit 0,$num
十二查询指定时间段的数据
select 要查找的字段 from 表名 where 字段名 between 初始值 and 终止值
select * from tb_stu where age between 0 and 18
十三按月查询统计数据
select * from tb_stu where month(date) = ''$_post[date]'' order by date ;
注:sql语言中提供了如下函数,利用这些函数可以很方便地实现按年、月、日进行查询
year(data):返回data表达式中的公元年分所对应的数值
month(data):返回data表达式中的月分所对应的数值
day(data):返回data表达式中的日期所对应的数值
十四查询大于指定条件的记录
select * from tb_stu where age>$_post[age] order by age;
十五查询结果不显示重复记录
select distinct 字段名 from 表名 where 查询条件
注:sql语句中的distinct必须与where子句联合使用,否则输出的信息不会有变化 ,且字段不能用*代替
十六not与谓词进行组合条件的查询
(1)not berween … and … 对介于起始值和终止值间的数据时行查询 可改成 终止值
(2)is not null 对非空值进行查询
(3)is null 对空值进行查询
(4)not in 该式根据使用的关键字是包含在列表内还是排除在列表外,指定表达式的搜索,搜索表达式可以是常量或列名,而列名可以是一组常量,但更多情况下是子查询
十七显示数据表中重复的记录和记录条数
select name,age,count(*) ,age from tb_stu where age = ''19'' group by date
十八对数据进行降序/升序查询
select 字段名 from tb_stu where 条件 order by 字段 desc 降序
select 字段名 from tb_stu where 条件 order by 字段 asc 升序
注:对字段进行排序时若不指定排序方式,则默认为asc升序
十九对数据进行多条件查询
select 字段名 from tb_stu where 条件 order by 字段1 asc 字段2 desc …
注意:对查询信息进行多条件排序是为了共同限制记录的输出,一般情况下,由于不是单一条件限制,所以在输出效果上有一些差别。
二十对统计结果进行排序
函数sum([all]字段名) 或 sum([distinct]字段名),可实现对字段的求和,函数中为all时为所有该字段所有记录求和,若为distinct则为该字段所有不重复记录的字段求和
如:select name,sum(price) as sumprice from tb_price group by name
select * from tb_name order by mount desc,price asc
二十一单列数据分组统计
select id,name,sum(price) as title,date from tb_price group by pid order by title desc
注:当分组语句group by排序语句order by同时出现在sql语句中时,要将分组语句书写在排序语句的前面,否则会出现错误
二十二多列数据分组统计
多列数据分组统计与单列数据分组统计类似
select *,sum(字段1*字段2) as (新字段1) from 表名 group by 字段 order by 新字段1 desc
select id,name,sum(price*num) as sumprice from tb_price group by pid order by sumprice desc
注:group by语句后面一般为不是聚合函数的数列,即不是要分组的列
二十三多表分组统计
select a.name,avg(a.price),b.name,avg(b.price) from tb_demo058 as a,tb_demo058_1 as b where a.id=b.id group by b.type;
23个MySQL常用查询语句,23MySQL常用语句_PHP教程
23个mysql常用查询语句,23mysql常用语句
一查询数值型数据:
select * from tb_name where sum > 100;
查询谓词:>,=,,!=,!>,!,=
二查询字符串
select * from tb_stu where sname = ''小刘''
select * from tb_stu where sname like ''刘%''
select * from tb_stu where sname like ''%程序员''
select * from tb_stu where sname like ''%php%''
三查询日期型数据
select * from tb_stu where date = ''2011-04-08''
注:不同数据库对日期型数据存在差异: :
(1)mysql:select * from tb_name where birthday = ''2011-04-08''
(2)sql server:select * from tb_name where birthday = ''2011-04-08''
(3)access:select * from tb_name where birthday = #2011-04-08#
四查询逻辑型数据
select * from tb_name where type = ''t''
select * from tb_name where type = ''f''
逻辑运算符:and or not
五查询非空数据
select * from tb_name where address '''' order by addtime desc
注:相当于php中的!=
六利用变量查询数值型数据
select * from tb_name where id = ''$_post[text]''
注:利用变量查询数据时,传入sql的变量不必用引号括起来,因为php中的字符串与数值型数据进行连接时,程序会自动将数值型数据转变成字符串,然后与要连接的字符串进行连接
七利用变量查询字符串数据
select * from tb_name where name like ''%$_post[name]%''
完全匹配的方法"%%"表示可以出现在任何位置
八查询前n条记录
select * from tb_name limit 0,$n;
limit语句与其他语句,如order by等语句联合使用,会使用sql语句千变万化,使程序非常灵活
九查询后n条记录
select * from tb_stu order by id asc limit $n
十查询从指定位置开始的n条记录
select * from tb_stu order by id asc limit $_post[begin],$n
注意:数据的id是从0开始的
十一查询统计结果中的前n条记录
select * ,(yw+sx+wy) as total from tb_score order by (yw+sx+wy) desc limit 0,$num
十二查询指定时间段的数据
select 要查找的字段 from 表名 where 字段名 between 初始值 and 终止值
select * from tb_stu where age between 0 and 18
十三按月查询统计数据
select * from tb_stu where month(date) = ''$_post[date]'' order by date ;
注:sql语言中提供了如下函数,利用这些函数可以很方便地实现按年、月、日进行查询
year(data):返回data表达式中的公元年分所对应的数值
month(data):返回data表达式中的月分所对应的数值
day(data):返回data表达式中的日期所对应的数值
十四查询大于指定条件的记录
select * from tb_stu where age>$_post[age] order by age;
十五查询结果不显示重复记录
select distinct 字段名 from 表名 where 查询条件
注:sql语句中的distinct必须与where子句联合使用,否则输出的信息不会有变化 ,且字段不能用*代替
十六not与谓词进行组合条件的查询
(1)not berween … and … 对介于起始值和终止值间的数据时行查询 可改成 终止值
(2)is not null 对非空值进行查询
(3)is null 对空值进行查询
(4)not in 该式根据使用的关键字是包含在列表内还是排除在列表外,指定表达式的搜索,搜索表达式可以是常量或列名,而列名可以是一组常量,但更多情况下是子查询
十七显示数据表中重复的记录和记录条数
select name,age,count(*) ,age from tb_stu where age = ''19'' group by date
十八对数据进行降序/升序查询
select 字段名 from tb_stu where 条件 order by 字段 desc 降序
select 字段名 from tb_stu where 条件 order by 字段 asc 升序
注:对字段进行排序时若不指定排序方式,则默认为asc升序
十九对数据进行多条件查询
select 字段名 from tb_stu where 条件 order by 字段1 asc 字段2 desc …
注意:对查询信息进行多条件排序是为了共同限制记录的输出,一般情况下,由于不是单一条件限制,所以在输出效果上有一些差别。
二十对统计结果进行排序
函数sum([all]字段名) 或 sum([distinct]字段名),可实现对字段的求和,函数中为all时为所有该字段所有记录求和,若为distinct则为该字段所有不重复记录的字段求和
如:select name,sum(price) as sumprice from tb_price group by name
select * from tb_name order by mount desc,price asc
二十一单列数据分组统计
select id,name,sum(price) as title,date from tb_price group by pid order by title desc
注:当分组语句group by排序语句order by同时出现在sql语句中时,要将分组语句书写在排序语句的前面,否则会出现错误
二十二多列数据分组统计
多列数据分组统计与单列数据分组统计类似
select *,sum(字段1*字段2) as (新字段1) from 表名 group by 字段 order by 新字段1 desc
select id,name,sum(price*num) as sumprice from tb_price group by pid order by sumprice desc
注:group by语句后面一般为不是聚合函数的数列,即不是要分组的列
二十三多表分组统计
select a.name,avg(a.price),b.name,avg(b.price) from tb_demo058 as a,tb_demo058_1 as b where a.id=b.id group by b.type;
DB_SQLite3命令操作大全
sqlite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向sqlite数据库的sql命令。本文档提供一个样使用sqlite3的简要说明. 启动sqlite3程序,仅仅需要敲入带有sqlite数据库名字的"sqlite3"命令即可。如果文件不存在,则创建一个新的(数据库)文件。然后 sqlite3程序将提示你输入sql。敲入sql语句(以分号“;”结束),敲回车键之后,sql语句就会执行。 例如,创建一个包含一个表"tb11"名字为"ex1"的sqlite数据库,你可以这样做: 数据库、表的建立,记录的添加、查询、修改和删除 F:\>sqlite3 database.db sqlite> create table admin(username text,age integer); sqlite> insert into admin values('kuang',25); sqlite> select * from admin; sqlite> update admin set username='kk',age=24 where username='kuang' and age=25; sqlite> delete from admin where username='kk'; 注:每条sql语句后必须以";"号结尾! $sqlite3 ex1 sqlite version 3.3.17 Enter ".help" for instructions sqlite> create table tbl1(one varchar(10),two smallint); sqlite> insert into tbl1 values('hello!',10); sqlite> insert into tbl1 values('goodbye',20); sqlite> select * from tbl1; hello!|10 goodbye|20 sqlite> 你可以通过敲你所用系统的文件结束符(通常是Ctrl + D)或者中断字符(通常是Ctrl + C)。来终止sqlite3程序。确定你在每个sql语句结束敲入分号!sqlite3程序通过查找分号来决定一个sql语句的结束。如果你省略分 号,sqlite3将给你一个连续的命令提示符并等你给当前的sql命令添加更多的文字。这个特点让你输入多行的多个sql语句,例如: sqlite> create table tbl2( ...> f1 varchar(30) primary key,...> f2 text,...> f3 real ...> ); sqlite> 题外话:查询sqlITE_MASTER表 sqlite数据库的框架被保存在一个名叫"sqlite_master"的特殊的表中。你可以像查询其它表一样通过执行“SELECT”查询这个特殊的表。例如: $ sqlite3 ex1 sqlite vresion 3.3.10 Enter ".help" for instructions sqlite> select * from sqlite_master; type = table name = tbl1 tbl_name = tbl1 rootpage = 3 sql = create table tbl1(one varchar(10),two smallint) sqlite> 但你不能在sqlite_master表中执行诸如DROP TABLE,UPDATE,INSERT 或者DELETE命令。sqlite_master表在你创建、删除和索引数据库时自动更新这个表。你不能手工更改sqlite_master表。 TEMPORARY表的结构没有存储在"sqlite_master"表中,由于TEMPORARY表对应用是不可见的,而不是应用程序创建这个表。 TEMPORARY表结构被存储在另外一个名叫"sqlite_temp_master"的特定的表中。"sqlite_temp_master"表是临 时表自身。 sqlite3的特殊命令 大多数候,sqlite3读入输入行,并把它们传递到sqlite库中去运行。但是如果输入行以一个点(“.”)开始,那么这行将被sqlite3程序自 己截取并解释。这些“点命令”通常被用来改变查询输出的格式,或者执行鞭个预封包(预定义prepackaged)的查询语句。 你可以在任何时候输入“.help”,列出可用的点命令。例如 sqlite> .help .bail ON|OFF Stop after hitting an error. Default OFF .databases List names and files of attached databases .dump ?TABLE? ... Dump the database in an sql text format .echo ON|OFF Turn command echo on or off .exit Exit this program .explain ON|OFF Turn output mode suitable for EXPLAIN on or off. .header(s) ON|OFF Turn display of headers on or off .help Show this message .import FILE TABLE Import data from FILE into TABLE .indices TABLE Show names of all indices on TABLE .load FILE ?ENTRY? Load an extension library .mode MODE ?TABLE? Set output mode where MODE is one of: csv Comma-separated values column Left-aligned columns. (See .width) html HTML <table> code insert sql insert statements for TABLE line One value per line list Values delimited by .separator string tabs Tab-separated values tcl TCL list elements .nullvalue STRING Print STRING in place of NULL values .output FILENAME Send output to FILENAME .output stdout Send output to the screen .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program .read FILENAME Execute sql in FILENAME .schema ?TABLE? Show the CREATE statements .separator STRING Change separator used by output mode and .import .show Show the current values for varIoUs settings .tables ?PATTERN? List names of tables matching a LIKE pattern .timeout MS Try opening locked tables for MS milliseconds .width NUM NUM ... Set column widths for "column" mode sqlite> 改变输出格式 sqlite3程序可以以八种不同的格式显示一个查询的结果:"csv","列","html","插入","行","制表"和"tcl"。你可以用".mode"点命令在这些输出格式之间切换。 默认的输出格式是“列表”。在列表模式下,每条查询结果记录被写在一行中并且每列之间以一个字符串分割符隔开。默认的分隔符是一个管道符号(“|”)。列表符号在当你输出查询结果到另外一个符加处理的程序(如AWK)中去是尤为有用。 sqlite> .mode list sqlite> select * from tbl1; hello|10 goodbye|20 sqlite> 你可以用“.separator”点命令来改变分界符。例如,为了把分割符改为一个逗号和一个空格,你可以这样做: sqlite> .separator "," sqlite> select * from tbl1; hello,10 goodbye,20 sqlite> 在“line"模式下,每一个位于条记录中的列在它自己那行显示。每行由列名、一个等号和列数据组成。下一条记录以一个空行隔开。这是一个行模式输出的例子: sqlite> .mode line sqlite> select * from tbl1; one = hello two = 10 one = goodbye two = 20 sqlite> 在列模式下,每条记录在一个单独的行中以数据列对齐的方式显示。列如: sqlite> .mode column sqlite> select * from tbl1; one two ---------- ---------- hello 10 goodbye 20 sqlite> 在默认的情况下,每列至少10个字符宽。太宽的数据将被截取。你可以用“.width”命令来调整列宽。如下所示: sqlite> .width 12 6 sqlite> select * from tbl1; one two ------------ ------ hello 10 goodbye 20 sqlite> 上面例子中".width"命令设置第一列宽为12第二列宽为6。其它的列宽不变。你可以指定与你查询结果需要的列数一样多的“.width”参数。 如果你指定一列宽为0,那么这个列宽将自动以下面三个数字中的最大值做为列宽:10、表头宽度和最宽的数据列的宽度。这可以让列自动调整宽度。每列的默认设置为自动调整的0值。 出现在输出开头两行的列标示可以用".header"点命令关闭。在上面的例子中,列标示是打开的。可以用下面的方法关闭列标示: sqlite> .header off sqlite> select * from tbl1; hello 10 goodbye 20 sqlite> 另外一个有用的输出模式是"insert"。在插入模式下,被子格式化为看起来像sql INSERT语句的样式。你可以用插入模式来产生文件(便于)以后用于不同数据库的输入。 当指定插入模式时,你必须给定一个特定参数就是要插入的表名。例如: sqlite> .mode insert new_table sqlite> select * from tbl1; INSERT INTO 'new_table' VALUES('hello',10); INSERT INTO 'new_table' VALUES('goodbye',20); sqlite> 最新的输出格式是“html”。在这种模式下,sqlite3把查询的结果写做XHTML表。开始的<TABLE>和结束 的</TABLE>(标记)没有写出,但有<TR>、<TH>和<TD>等分界符。html输出对 CGI来说是相当有用地。 把结果写到文件中 默认情况下,sqlte3把结送到标准输出。你可以用“.output”命令改变它。只须把输出文件名做为.output命令的输出参数然后所有后续查询结果将被写到那个文件中。用“.output stdout”再一次改为标准输出。例如: sqlite> .mode list sqlite> .separator | sqlite> .output test_file_1.txt sqlite> select * from tbl1; sqlite> .exit $ cat test_file_1.txt hello|10 goodbye|20 $ 查询数据库结构 sqlite3程序提供几个有用的用于查询数据库结构的快捷命令。这些不是不可以用别的方式来实现。这些命令仅仅是一个快捷方式而已。 例如,为了查看数据库的表列表,你可以敲入“.tables”。 sqlite> .tables tbl1 tbl2 sqlite> “.tables”命令相似于设置列表模式然后执行接下来的查询: SELECT name FROM sqlite_master WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'UNION ALL SELECT name FROM sqlite_temp_master WHERE type IN ('table','view') ORDER BY 1sqlite> .schema create table tbl1(one varchar(10),two smallint) CREATE TABLE tbl2 ( f1 varchar(30) primary key,f2 text,f3 real ) sqlite> .schema tbl2 CREATE TABLE tbl2 ( f1 varchar(30) primary key,f3 real ) sqlite> 事实上,你可以查看sqlite3的源代码(可以在源文件树的src/shell.c中),你可找到上面的具体的查询。 “.indices” 命令作用类似的方式是列出特定表的所有的索引。“.indics”命令须一个参数即所要索引表的表名。最后,但不是至少,是“.schema”命令。不带 任何参数,“.schema”命令显示原始的用于创建当前数据库的CREATE TABLE和CREATE INDEX语句。如果你给".schema"命令一个表名,它显示原始的创建该表和它所有索引的CREATE语句。我们可以: ".schema"命令可以用设置列表然后执行以下查询来实现: SELECT sql FROM (SELECT * FROM sqlite_master UNION ALL SELECT * FROM sqlite_temp_master)WHERE type!='Meta'ORDER BY tbl_name,type DESC,name 或者,如果你给".schema"命令一个参数,由于你只想得到一个表的结构,查询可以是这样: SELECT sql FROM (SELECT * FROM sqlite_master UNION ALL SELECT * FROM sqlite_temp_master)WHERE type!='Meta' AND sql NOT NULL AND name NOT LIKE 'sqlite_%'ORDER BY substr(type,2,1),name 你可以担供一个参数给.schema命令。如果这橛,查询可以是这样的: SELECT sql FROM (SELECT * FROM sqlite_master UNION ALL SELECT * FROM sqlite_temp_master)WHERE tbl_name LIKE '%s' AND type!='Meta' AND sql NOT NULL AND name NOT LIKE 'sqlite_%'ORDER BY substr(type,name 在查询中“%s“为你的参数所取代。这使你可以询数据库结构的某个子集。 sqlite> .schema %abc% 与这些一起,“.table”命令也接受一个模式作为他的参数。如果你给“.table”一个参数,“%”将被前后扩展并且一个LIKE子句被附加到查询上。这让你可以列出只与特定模式相匹配的的表。 “.datebaSAE” 命令显示所有当前连接打开的数据库的一个列表。将允许一次到少两个。第一个是“main”,最初打开的那个数据库。第二个是"temp",用于临时表的数 据库。对于用ATTACH语句附加的数据也许有附加数据库列表。输出的第一列与之相联的数据库名,第二列是外部文件名。 sqlite> .databases 将整个数据库转换为ASCII文本文件 ".dump"命令成一个单一的ASCII文本文件。这个文件可以被用作管道传递给sqlite3命令来转换回数据库。 一个最好的制作一个数据库档案拷贝的命令是: $ echo '.dump' | sqlite3 ex1 | gzip -c >ex1.dump.gz 它产生一个一个名为ex1.dump.gz的文件,它包含了你以后或在其它机器上重构数据库的所有的信息。要重构数据库,只须敲入: $ zcat ex1.dump.gz | sqlite3 ex2 这个文本格式是纯粹的sql语句所以你可以用.dump命令来导出一个sqlite数据库到另一个常用的sql数据库引擎。比如: $ createdb ex2 $ sqlite3 ex1 .dump | psql ex2 其它的点命令 ".explain" 命令可以被用来设置输出格式为“column” 并设置列宽为EXPLAIN命令看起来比较合理的宽度。EXPLAIN命令是sqlite特有的sql扩展,它是对调试有用。如果任何常规的sql被 EXPLAIN执行,那么sql命令被分解并分析但并不执行。取而代之的是,虚拟机指令序列将被用于执行sql命令并返回一个类似的查询结果。如: sqlite> .explain sqlite> explain delete from tbl1 where two<20; addr opcode p1 p2 p3 ---- ------------ ----- ----- ------------------------------------- 0 ListOpen 0 0 1 Open 0 1 tbl1 2 Next 0 9 3 Field 0 1 4 Integer 20 0 5 Ge 0 2 6 Key 0 0 7 ListWrite 0 0 8 Goto 0 2 9 Noop 0 0 10 ListRewind 0 0 11 ListRead 0 14 12 Delete 0 0 13 Goto 0 11 14 ListClose 0 0 “.timeout”命令设置sqlite3等待一个试图存储文件锁定请除直到错误返回的总时间。默认的超时值是0因此如果任何需要的数据库表或序列列被锁定时它将立即返回一个错误。 最后,我们提到“.exit”命令它交导致sqlite3退出。 在命令和脚本中使用sqlite3 一 个在脚本命令中使用sqlite3的方式是用“echo”或“cat”来产生一个命令序列在一个文件中,然后当从一个产生的命令行中重定向输入时调用 sqlite3。它有用并且适应许多环境。但作为一附加的便利是,sqlite3允许一个单一的sql语句在命令行中作为数据库名后的第二个参数输入。当 sqlite3程序带着两个参数启动时,第二个参数被传递给sqlite库处理,查询以列表模式打印到标准输出,然后程序退出。这个机制被设计用于让 sqlite3容易于用于连接诸如"AWK"的程序。例如: $ sqlite3 ex1 'select * from tbl1' | > awk '{printf "<tr><td>%s<td>%s\n",$1,$2 }' <tr><td>hello<td>10 <tr><td>goodbye<td>20 $ 结束命令行命令 sqlite 命令通常以一个分号结束。在一个命令行中你也可以用“GO”单词(大小写敏感)或者一个“/”斜线在它所在好行结束一个命令。这常被sql Server和Oracle使用。这些将不在sqlite3_exec()中有用,因为命令行在传递它们到函数之前把这些翻译为分号。 从源文件中编译sqlite3 sqlite3程序当你编译sqlite库时自动被建立。只须取得一个源文件树的拷贝,运行“configure"然后"make"即可。
今天的关于MySql常用查询命令操作大全和mysql常用查询命令操作大全的分享已经结束,谢谢您的关注,如果想了解更多关于23个MySQL常用查询语句、23个MySQL常用查询语句,23MySQL常用语句、23个MySQL常用查询语句,23MySQL常用语句_PHP教程、DB_SQLite3命令操作大全的相关知识,请在本站进行查询。
本文标签: