程序员大数据 爬虫Python AI Sql程序猿阵线联盟-汇总各类技术干货

SQL基础

2017-02-06  本文已影响56人  BigfaceMonster

MySQL学习笔记(1)

SQL基础

安装:推荐下载官方rpm包安装
配置:执行mysql --help可查看相关相关配置信息,服务所使用配置文件的位置可以通过mysql --help|grep my.cnf查看。
服务:启动服务mysqld_safe &,停止服务mysqladmin -uroot shutdown -p

client连接后?可以查看client端信息,其中\e结合\g(\G)很好用

修改表(DDL)

ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name]
ALTER TABLE tablename DROP [COLUMN] col_name
ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST | AFTER col_name]

change和modify都可以修改表的定义,但change需写两次列名,优点是能改列名,modify不能。

CHANGE/FIRST|AFTER这些关键字都是属于mysql在标准sql上的扩展。

ALTER TABLE tablename RENAME [TO] new_tablename

DML语句

INSERT INTO tablename(field1,field2,...,fieldn) VALUES(value1,value2,...,valuen) [,(value1,value2,...,valuen),...,(value1,value2,...,valuen)];

在插入大量记录时,批量插入的特性节省了很多的网络开销,提高了插入效率。

UPDATE tablename SET field1=value1,field2=value2,...,fieldn=valuen [WHERE CONDITION]
或者
UPDATE t1,t2,...,tn set t1.filed1=expr1,...,tn.filedn=exprn [WHERE CONDITION]
DELETE FROM tablename [WHERE CONDITION]
多表删除
DELETE t1,t2,...,tn FROM t1,t2,...,tn [WHERE CONDITIO

执行删除操作之前强烈建议先用select查确定好where条件,最后添加delete。不管是单表还是多表,没有where条件将会删除所有记录。

查询记录

SELECT [field1,field2,...,fieldn] fun_name
    FROM tablename 
    [WHERE where_contition] 
    [GROUP BY field1,field2,...,fieldn] 
    [WITH ROLLUP]
    [HANVING where_contition]

having对聚合结果进行条件过滤,where在聚合前对记录过滤,如逻辑允许,尽可能用where先过滤记录,结果集减少对聚合效率会有提高。

SELECT [filed1,...,filedn] FROM table1name [LEFT | RIGHT] JOIN table2name ON CONDITION
    SELECT * FROM t1
    UNION | UNION ALL
    SELECT * FROM t2
    ...
    UNION | UNION ALL
    SELECT * FROM tn
> UNION和UNION ALL的主要区别是UNION ALL将结果集直接合并在一起,而UNION会进行一次DISTINCT。

DCL语句

    GRANT func[INSERT|SELECT] ON dbname.table[*] to 'USERNAME'@'ADDR' IDENTIFIED BY 'PASSWD'
REVOKE table ON tablename.* from 'USER'@'PASSWD'
> 注意使用mysql的帮助文档,即为`? content`。

Github传送门

上一篇下一篇

猜你喜欢

热点阅读