标签:mysql
命令行交互式客户端程序:mysql
用法: mysql [OPTIONS] [database]
常用选项:
-uUSERNAME:用户名,默认为root;
-hHOST:远程主机(即mysql服务器)地址,默认为localhost;
-p[PASSWORD]:USERNAME所表示的用户的密码; 默认为空;
注意:mysql的用户账号由两部分组成:‘USERNAME‘@‘HOST‘; 其中HOST用于限制此用户可通过哪些远程主机连接当前的mysql服务;
HOST的表示方式,支持使用通配符:如:
%:匹配任意长度的任意字符;
172.16.%.%, 172.16.0.0/16
_:匹配任意单个字符;
-Ddb_name:连接到服务器端之后,设定其处指明的数据库为默认数据库;
e.g. #mysql -uroot -p -Dmysql
-e ‘SQL COMMAND;‘:连接至服务器并让其执行此命令后直接返回;
e.g. mysql -e ‘show databases‘(显示所有的数据库后,直接退出)
mysql提示符下可用的命令:
客户端命令:本地执行
mysql> help
\u db_name:设定哪个库为默认数据库
\q:退出;
\s:显示当前mysql的版本号
注意:每个语句必须有语句结束符,默认为分号(;)
数据类型:字符型和数值型
字符型:
定长字符型:
CHAR(#):不区分字符大小写
BINARY(#):区分字符大小写
变长字符型:
VARCHAR(#)
VARBINARY(#)
对象存储:
TEXT
BLOB
内置类型:
SET 集合(只允许填写集合内指定的字符)
ENUM 枚举(只允许填写指定的字符)
数值型:
精确数值型:
INT整数:
TINYINT一个字节表示
SMALLINT两个字节
MEDIUMINT三个字节表示
INT四个字节表示
BIGINT八个字节表示)
近似数值型(浮点数):
FLOAT
DOBULE
日期时间型:
日期型:DATE
时间型:TIME
日期时间型:DATETIME
时间戳:TIMESTAMP
年份:YEAR(2), YEAR(4)
YEAR(2):1900--1999
YEAR(4):0000--9999
数据类型有修饰符:
UNSIGNED:无符号;修饰数值
NOT NULL:非空;
DEFAULT value:默认值;
服务器端命令:
获取命令帮助:
mysql> help KEYWORD(命令的关键字)
数据库管理:
创建:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS](不存在时创建) db_name;
[DEFAULT] CHARACTER SET [=] charset_name
[DEFAULT] COLLATE [=] collation_name(排序规则)
查看支持的所有字符集:SHOW CHARACTER SET
查看支持的所有排序规则:SHOW COLLATION
e.g.CREATE DATABASE IF NOT EXISTS jinnicatdb;
修改:
ALTER {DATABASE | SCHEMA} [db_name]
[DEFAULT] CHARACTER SET [=] charset_name(修改字符集)
[DEFAULT] COLLATE [=] collation_name(修改排序规则)
删除:慎用,一旦删除就不能恢复
DROP {DATABASE | SCHEMA} [IF EXISTS](存在则删除) db_name
表管理:
e.g. 创建: CREATE TABLE students(id INT UNSIGNED NOT NULL, name CHAR(30) NOT NULL, age TINYINT UNSIGNED, gender ENUM(‘f‘,‘m‘));
注释:
[INT UNSIGNED]定义为正整数,最多可用4个字节表示。[NOT NULL]不可为空。
[CHAR(30)]不区分字符大小写,30个字符长度。[NOT NULL]不可为空。
[age TINYINT UNSIGNED]年龄为正整数一个字节表示。
[gender ENUM(‘f‘,‘m‘)]性别使用枚举,只能选择f或m。
创建:
CREATE TABLE [IF NOT EXISTS](不存在则创建) tbl_name(表明) (create_defination)(表定义) [table_options](表选项)
create_defination:(表定义)
字段:col_name(字段名) data_type(数据类型)
键:
PRIMARY KEY (col1, col2, ...)将括号里面的字段定义为主键
UNIQUE KEY (col1, col2,...)将括号里面的字段定义为唯一键
FOREIGN KEY (column)将一个字段定义为外键
索引:
KEY|INDEX [index_name] (col1, col2,...)
table_options:表选项
ENGINE [=] engine_name(存储引擎)
查看数据库支持的所有存储引擎类型:
mysql> SHOW ENGINES;
查看某表的存储引擎类型:
mysql> SHOW TABLES STATUS [LIKE ‘tbl_name‘]
修改:
ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name [alter_specification [, alter_specification] ...]
alter_specification:表的字段、属性、缩影
字段:
添加:ADD [COLUMN] col_name data_type [FIRST | AFTER col_name ](指明字段名,指明创建字段的数据类型修饰符等,指明添加时放在表的位置)
e.g.给刚才创建的表添加个字段“班级”。
#ALTER TABLE students ADD class VARCHAR(100) NOT NULL;
还可指明添加到哪个字段之后,如
#ALTER TABLE students ADD class VARCHAR(100) NOT NULL AFTER name;
删除:DROP [COLUMN] col_name (删除某一字段)
e.g. ALTER TABLE students DROP class;
修改:
CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST|AFTER col_name] (改字段名、字段定义)
MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name](改字段定义)
e.g.将class改到age后面:
# ALTER TABLE students MODIFY class VARCHAR(100) NOT NULL AFTER age;
键:
添加:ADD {PRIMARY|UNIQUE|FOREIGN} KEY (col1, col2,...)(添加主键或唯一键或外键到哪个字段上)
删除:
主键:DROP PRIMARY KEY
外键:DROP FOREIGN KEY fk_symbol
e.g. 给name添加唯一键
# ALTER TABLE students ADD UNIQUE KEY (name);
使用DESC students可查看。
索引:
添加:ADD {INDEX|KEY} [index_name] (col1, col2,...)(指明缩影名字,指明缩影所在的字段)
e.g.在class上添加一个缩影叫class
ALTER TABLE students ADD INDEX class (class);
删除:DROP {INDEX|KEY} index_name DROP
e.g. ALTER TABLE students DROP INDEX name;
查看表上的索引的信息:(Clomn_name对应着缩影名)
mysql> SHOW INDEXES FROM tbl_name;
删除表:慎用,一旦删除不可恢复
DROP TABLE [IF EXISTS] tbl_name [, tbl_name] ...
查看表:SHOW TABLES FROM mydb(库名)
表的引用方式:
bl_name
db_name.tbl_name(库名加表名)
标签:mysql
原文地址:http://11293309.blog.51cto.com/11283309/1782298