分类: Mysql/postgreSQL
2011-09-05 08:10:27
MYSQL命令总结
SHOW TABLES 查看数据库表
use mysql 更改默认某个数据库(如mysql)
DESC 表名 查看表内容
SELECT * FROM 表名 查看表信息
FLUSH PRIVILEGES 立即生效
SELECT DATABASE() 显示当前默认数据库
DROP DATABASES 数据库表名 删除某个表
SHOW CHARACTER SE\C 显示支持的字符集
SHOW COLLATION 现在字符集
SHOW CURRENT_DATE 显示日期
SHOW CURRENT_DATETIME() 显示时间
SHOW WARNINGS 查看警告
SHOW ENGINES 显示存储引擎
SHOW VARIABLES LIKE “%sql_mode%” 模式
SET sql_mode= 设置模式
例:SET sql_mode=”STRICT_all_tables” 严格模式,
常用的模式: ANSI 只能使用单引号 ; STRICT_ALL_TABLES严格模式,禁止非法数据插入; TRADITIONAL 默认模式
SHOW GLOBAL VARIALES 全局会话显示
SHOW SESSION VARIABLES 当前会话显示
CREATE DATABASE IF NOT EXISTS aa CHARACTER SET ‘gbk’; 创建aa字符集为gbk
DROP DATABASE IF EXISTS aa; 存在aa则删除
SHOW CREATE DATABASE aa; 查看创建aa的命令
删除用户: DROP USER ‘’@localhost或’root’@localhost
mysqladmin命令用在Shell中:
mysqladmin –uroot –p ping 测试状态 mysqladmin drop 删除数据库
mysqladmin debug 日志 mysqladmin create sample 常见sample数据库
mysqladmin extended-status 显示mysql运行状态 mysqladmin flush-hosts 手动刷新日志
mysqladmin flush-privileges 刷新权限 mysqladmin flush-tables
mysqladmin processlist查看当前连接状态 mysqladmin reload
mysqladmin shutdown 关闭数据库 mysqladmin start-slave 从服务器启动
mysqladmin status 显示状态 mysqladmin stop-slave 从服务器关闭
mysqladmin version 现在版本
mysqladmin status –sleep 3 –count 2 睡3秒,显示2次
CREATE TABLE [IF NOT EXISTS] tb_name 创建表语法
例:CREATE TABLE users ( ID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,Name VARCHAR(30) NOT NULL,Age TINYINT UNSIGNED NOT NULL,Gender ENUM('F','M') NOT NULL DEFAULT 'M');
或者:创建表时,指定引擎CREATE TABLE db_name like db_othername; 只创建表结构
SELECT DISTINCT zone FROM zones LIMIT 100; 显示100行且去除重复
SELECT zone, COUNT(*) FROM mytb GROUP BY zone; 分组显示
修改表结构:
添加字段:ADD col_name col_ def 添加字段 AFTER col_name在col_name后添加字段,FIRST col_name该字段前加字段
例:
ALTER TABLE user1 ADD Master TINYINT UNSIGNED;
修改字段:CHANGE old_name new_name col_definat
添加索引:例:ALTER TABLE user ADD INDEX (Age);
创建索引: CREATE INDEX 字段名ON 表名(字段名)
例: CREATE INDEX on_name ON juexue(Cname)
删除字段: DROP col_name
删除键:DROP PRIMARY KEY
给表重命名:ALTER TABLE user RENAME TO qq
插入数据:INSERT INTO tb_name(字段名) VALUE (‘’,’’,’’)
INSERT INTO tb_name VALUE (‘’,’’,’’)
INSERT INTO tb_name SET 字段名=自定义
删除数据:
DELETE FROM tb_name WHERE 条件
TRUNCATE TABLE tb_name 清空数据并恢复初始状态
SELECT LAST_INSERT_ID();
ALTER TABLE user AUTO_INCREMENT=2 设定自动增长的ID号
创建视图:HELP CREATE VIEW 查看帮助
CREATE VIEW view_name AS SELECT clause WITH CHECK OPTON
删除视图:DROP VIEW view_name
子查询:
例: SELECT Name FROM knight WHERE Age > ( SELECT AVG(Age) FROM knigh WHERE Age IS NOT NULL);
SHOW PROCESSLIST 查看连接状态
查看隔离级别:SHOW VARIABLES LIKE ‘tx%’
START TRANSACTION 启用事物
例:LOCK TABLES user READ; 启动共享锁
UNLOCK TABLES 释放锁
创建用户:HELP CRATE USER 查看帮助
CREATE USER user_name@IP IDENTIFIED BY ‘password’
例;CREATE USER jerry@’%’ IDENTIFIED BY ‘REDHAT’
删除用户: DROP USER username@IP
授权:GRANT 授权
格式: GRANT 权限 ON 表 TO 用户 [IDENTIFIED BY ‘PASSWORD’]
例:GRANT DROP ON hellodb.* TO ‘jerry’@’%’
例:GRANT ALL PRIVILEGES ON hellodb.* TO ‘jerry’@’%’ 授权所以权限
在某个字段上的权限:
GRANT SELECT(name) ON db_name TO user@IP
执行存储历程的权限:
GRANT EXECUTE ON db_name TO user@IP
SHOW GRANTS FOR ‘root’@’localhost’ 查看root的用户所拥有的权限
例:REVOKE SELECT ON hellodb.* FROM ‘jerry’@’%’ 收回select权限
多表查询:
连接的类型:
交叉连接(很少用到),例:SELECT * FROM user,user2
内连接, 例:SELECT * FROM user,user2 WHERE user.ID=user2.CID表user的字段id和表user2的字段cid连接起来
别名 例:SELECT * FROM user AS A, user2 AS B HWERE A.ID=B.ID
外连接:左外连接、右边连接、
SLECT k.Name,j.Cname FROM user AS k, LEFT JOIN user2 AS j ON k.CID=J.CID
全外连接,自连接
例:SELECT k1.NAME,k2.Name FROM user AS k1, user2 AS k2 WHERE k1.Age=k2.UID
UNION: 例: SELECT UID AS ID ,Name AS NAME FROM user UNION SELECT CID AD ID, CNAME AS NAME FROM user2
创建表并设置引擎:
CREATE TABLES users(id INT) ENGINE = InnoDB;
CREATE TABLES users ENGINE = InnoDB;
设置默认引擎:在/etc/my.cnf中加入以下内容:default-storage-engine=innodb