Mysql 常用操作

  • 数据库连接
[root@host]# mysql -u root -p -h 192.168.1.1
Enter password:ShaZam
  • 数据库退出
mysql> exit
Bye
  • 创建数据库
CREATE DATABASE 数据库名;

[root@host]# mysql -u root -p   
Enter password:******  # 登录后进入终端

mysql> create DATABASE CI;
mysqladmin -u root -p create CI;
  • 删除数据库
drop database <数据库名>;

mysql> drop database CI
mysqladmin -u root -p drop CI;
  • 选择表
[root@host]# mysql -u root -p
Enter password:******
mysql> use CI;
Database changed
mysql>
  • 数据类型
To be continue
  • 创建数据表
CREATE TABLE table_name (column_name column_type);

CREATE TABLE IF NOT EXISTS `ci_diff`(
   `id` INT UNSIGNED AUTO_INCREMENT,
   `title` VARCHAR(100) NOT NULL,
   `author` VARCHAR(40) NOT NULL,
   `submission_date` DATE,
   PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • 删除数据表
DROP TABLE table_name ;

root@host# mysql -u root -p
Enter password:*******
mysql> use CI;
Database changed
mysql> DROP TABLE ci_diff
Query OK, 0 rows affected (0.8 sec)
mysql>
  • 插入数据
INSERT INTO table_name ( field1, field2,...fieldN )  VALUES ( value1, value2,...valueN ),(),();
  • 查询数据
SELECT column_name,column_name FROM table_name [WHERE Clause] [LIMIT N] [ OFFSET M]

你可以使用 LIMIT 属性来设定返回的记录数
你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
  • WHERE
SELECT field1, field2,...fieldN FROM table_name1, table_name2... [WHERE condition1 [AND [OR]]
condition2.....
  • UPDATE
UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
  • DELETE
DELETE FROM table_name [WHERE Clause]
  • LIKE
SELECT field1, field2,...fieldN  FROM table_name WHERE field1 LIKE condition1 [AND [OR]] filed2 = somevalue'
LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
  • UNIION
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
ALL: 可选,返回所有结果集,包含重复数据。
  • 排序
SELECT field1, field2,...fieldN table_name1, table_name2...ORDER BY field1, [field2...] [ASC [DESC]]
  • GROUP BY
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;
  • 连接的使用: 多张表的数据汇总成一种形式的数据
    • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
    • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
    • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
INNER JOIN 代表关联表
ON 代表之间相同的字段
WHERE 代表从数据库获取对应的数值
 
SELECT a.diff_id, a.revision_id, b.board_name, b.process_type, COUNT(*) as numm, a.username FROM phab_monitor a INNER JOIN phab_compile_result b ON a.diff_id = b.diff_id where a.diff_id=391517 group by b.board_name;
  • NULL 值处理
IS NULL: 当列的值是 NULL,此运算符返回 true。
IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
<=>: 比较操作符(不同于=运算符),当比较的的两个值为 NULL 时返回 true。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,499评论 0 9
  • 1. 查看数据库:show databases; 2. 创建数据库:create database kuname;...
    Yajulia阅读 267评论 0 1
  • 文艺青年地瓜精, 读了东野圭吾的一箩筐作品后, 英语日语均不通的地瓜踏上了霓虹之旅, 却遭遇了…… 一 最初对于日...
    落卜卜阅读 529评论 0 1
  • 自己永远是自己的主角,不要总在别人的戏剧里充当着配角。----《人生不过如此》林语堂 6月23日,中二少女裸辞的第...
    中二少女裸辞纪实阅读 238评论 0 0
  • 明天就是世界读书日了,各个媒体讨论这个话题的时候都免不了要推荐一个书单。从人文社科到网络文学,种类繁多,有的还附上...
    051_王超_互联网阅读 311评论 0 0