数据库和数据表的操作
show ,desc:
show:
show databases;
show tables;
desc:
mysql> SHOW COLUMNS FROM table_name;
mysql> desc table_name; 两个命令效果等同;
创建数据库create 命令:
mysql> create DATABASE DEMO;
删除数据库:删除名为DEMO 的数据库:
mysql> drop database DEMO;
创建数据表:
mysql> CREATE TABLE user(
-> user_id INT NOT NULL AUTO_INCREMENT,
-> user_title VARCHAR(100) NOT NULL,
-> user_author VARCHAR(40) NOT NULL,
-> submission_date DATE,
-> PRIMARY KEY ( user_id )
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP命令来删除数据表:
DROP TABLE table_name ;
SELECT 命令来获取 MySQL 数据表user 的数据:
select * from user;
查询包含某个字符:
SELECT * from user_tbl WHERE user_author LIKE '%php';
INSERT INTO SQL语句来插入数据:
mysql->INSERT INTO user
-> (user_title, user_author, submission_date)
-> VALUES
-> ("学习 PHP", "PHP中文网", NOW());
删除 MySQL 数据表中的记录:
DELETE FROM user WHERE user_id=3;
UPDATE 命令修改 MySQL 数据表数据:
UPDATE user SET user_title='学习 C++' WHERE user_id=3;
修改数据表名或者修改数据表字段:ALTER命令
ALTER 命令及 DROP 子句来删除以上创建表的 i 字段:
mysql> ALTER TABLE testalter_tbl DROP i;
添加 i 字段,并定义数据类型
mysql> ALTER TABLE testalter_tbl ADD i INT;
特殊查询
排序: SELECT * from user ORDER BY submission_date ASC(desc);
查询包含某个字符: SELECT * from user_tbl WHERE user_author LIKE '%php';
分组:GROUP BY 语句根据一个或多个列对结果集进行分组。在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
SELECT column_name, function(column_name)FROM table_name WHERE column_name operator value GROUP BY column_name; WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。
JOIN 在两个或多个表中查询数据:
mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;
完整复制表格
CREATE TABLE targetTable LIKE sourceTable;
INSERT INTO targetTable SELECT * FROM sourceTable;
重复数据处理
防止:指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性
CREATE TABLE person_tbl
(
first_name CHAR(20) NOT NULL,
last_name CHAR(20) NOT NULL,
sex CHAR(10),
PRIMARY KEY (last_name, first_name)
);
插入:
mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)
-> VALUES( 'Jay', 'Thomas');
删除:
mysql> ALTER IGNORE TABLE person_tbl
-> ADD PRIMARY KEY (last_name, first_name);
过滤:
mysql> SELECT DISTINCT last_name, first_name
-> FROM person_tbl;
统计:
mysql> SELECT COUNT(*) as repetitions, last_name, first_name
-> FROM person_tbl
-> GROUP BY last_name, first_name
-> HAVING repetitions > 1;
SELECT VERSION( ) 服务器版本信息
SELECT DATABASE( ) 当前数据库名 (或者返回空)
SELECT USER( ) 当前用户名
SHOW STATUS 服务器状态
SHOW VARIABLES 服务器配置变量