码迷,mamicode.com
首页 > 数据库 > 详细

数据库

时间:2016-05-24 10:36:35      阅读:247      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!