一、MySQL

1.mysql 安装提示: Typical典型安装 custom自定义安装  Complete 完全安装。  Detailed详细配置  Standard标准配置。

2.目录结构

bin:  存储可执行文件

data: 存储数据文件

docs: 文档

include: 存储包含的头文件

lib: 存储库文件

shave: 错误信息和字符集文件

3. 配置选项

配置文件  安装目录下 my.ini文件

[Mysql]

default-character-set=uyf8

[client]

port=3306   端口号

[Mysqld]

basedir=

datadir=

character-set-server=utf8

4. 启动停止mysql。(所有win服务启动停止 net start/stop)

启动 net  start mysql;

停止 net  stop mysql;

5. mysql登录  退出

登录 mysql -uroot -p -P3306 -h127.0.0.1 ;

退出 mysql>exit,quit,q;

参数:

-V,--version  输出版本信息

_D,--database=name  打开指定数据库

--delimiter=name  指定分隔符

-h,--host=name  服务器名称

-p,--password[=name]  密码

-P,--port=#   端口号

--prompt =name  提示符

-u,--user=name  用户名

6.修改提示符

连接客户端时   shell-> mysql -uroot -p --prompt 提示符

连上客户端后   mysql> prompt 提示符

提示符可选 \h 服务器,\D完整日期,\d数据库,\u当前用户。

7.数据库常用命令

SELECT VERSION() 显示当前服务器版本号

SELECT NOW()  显示当前日期时间

SELECT USER()  显示当前用户

8.MySQL语句规范

关键字函数名称全部大写。

数据库名称,表名称,字段名称全部小写。

SQL语句以分号结尾。

二、操作数据库

CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARATER SET [=] charset_name

   EXISTS存在  CHARATER SET编码方式 省略为默认

查看数据库

SHOW {DATABASE|SCHEMA} [LIKE 'pattern' | WHERE expr]

查看编码方式

SHOW CREACT DATABASE db_name

修改数据库

ALTER {DATABASE | SCHEMA} [db_name] [DEFAULT] CHARACT SET [=] charset_name;

删除数据库

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;

三、数据类型

整数  TINYINT   1字节   2^8

          SMALLINT   2字节  2^16

          MEDIUMINT    3字节

         INT     4字节

         BIGINT    8字节

浮点数    FLOAT[(M,D)]

                DOUBLE[(M,D)]

日期    YEAR       1字节

            TIME       3字节

             DATE      3字节

            DATETIME    8字节

            TIMESTAMP    4字节     时间戳

字符型   CHAR(M)   0<=M<=2^8-1   255

               VARCHAR(M)    L+1字节   L<=M    0<=M<=^16

              TINYTEXT      L+1字节     L<2^8

              TEXT               L+2字节     L<2^16

              MEDIUMTEXT    L+3字节    L<2^24

             LONGTEXT          L+4字节    L<2^32

            ENUM('value1',......)    枚举

            SET('value1',.......)    集合

四、操作数据表

 打开数据库:   USE db_name

创建数据表  CREATE TABLE [IF NOT EXISTS] tbl_name (colum_name data_type,...) (UNSIGNED)

 查看数据表  SHOW TABKES [FROM db_name] [LIKE 'pattern' | WHERE expr]

      SHOW  COLUMNS FROM tbl_name

添加单列 ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition【列定义】 [FIRST | AFTER col_name]

添加多列 ALTER TABLE tbl_name ADD [COLUMN] (col_name column_definition,...)  不能指定位置,只能最后。

删除列 ALTER TABLE tbl_name DORP [COLUMN] col_name,DORP  col_name [DORP col_name,ADD col_name,...]   可同时删除、增加。

添加主键约束 ALTER TABLE tbl_name ADD [CONSTRAINT【约束】 [symbd]] PRIMARY KEY [index_type] (index_col_name,...)

添加唯一约束 ALTER TABLE tbl_name ADD [CONSTRAINT [symbd]] UNIQUE [INDEX | KEY] [index_name] [index_type] (index_col_name,...)

添加外键约束 ALTER TABLE tbl_name ADD [CONSTRAINT [symbd]] FOREIGN KEY [index_name] (index_col_name,...) reference_definiton

添加、删除默认约束 ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}

删除主键约束 ALTER TABLE tbl_name DROP PRIMARY KEY

删除唯一约束 ALTER TABLE tbl_name DROP {INDEX | KEY} index_name

      查看约束 SHOW INDEX FROM tbl_name      句末可以加(\G)

删除外键约束  ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol

      查看外键 SHOW REATE TABLE tbl_name

修改列定义 ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name]

修改列名称  ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name]   实际少用易产生错误

数据表更名 方法一 ALTER TABLE tbl_name RENAME [TO | AS] new_tbl_name

                  方法二(实际少用) ALTER TABLE tbl_name TO new_tbl_name [,tbl_name2 TO new_tbl_name2,...]

五、约束

1.表级约束和列级约束  保证数据完整性和一致性。

表级约束  对多个数据列约束,只能在列定义后声明。(用的很少)

列级约束  对一个数据列约束,既可以在列定义时声明,也可以在列定以后声明。

2.空值与非空约束  NULL    NOT NULL

3.自动编号  AUTO_INCREMENT 必须与主键一起使用。 (INT型或小数位为0的FLOAT型,默认起始为1,增量为1)

4.主键约束  PRIMARY KEY (自动NOT NULL)

5.唯一约束  UNIQUE KEY (保持记录唯一性,可以为NULL但只能有一个)

6.默认约束  DEFAULT

7.外键约束  FOREIGN KEY 功能是实现一对一,一对多关系。实际使用中很少用外键约束,大多用逻辑约束。

*外键约束要求

a. 父表(子表参照的表)与子表(具有外键列的表)必须使用相同存储引擎,禁止使用临时表。

b. 数据存储引擎只能为InnoDB。

    查看存储引擎 SHOW CREATE TABLE tbl_name;

    默认存储引擎在my.ini文件  default-storage-engine=INNODB

c.  外键和参照列具有相似的数据类型,数字的长度和符号位必须相同,字符长度可不同。

d.外键和参照列必须创建索引。外键不存在索引时MySQL自动创建。

    显示索引 SHOW INDEXES FROM tbl_name\G;

*外键约束参照操作

a.  CASCADE 从父表删除或更新时,自动删除或更新子表中匹配的行。

b. SET NULL 从父表删除或更新时,设置子表中外键列为NULL,必须保证子表列没有指定NOT NULL。

c. RESTRICT 拒绝对父表的删除或更新。

d. NO ACTION 标准SQL关键字,与RESTRICT相同。

六、操作记录

插入记录 INSET [INTO] tbl_name [(col_name)]  [VALUES |VALUSE ] ({expr | DEFAUT},...) ,(...),...  自动编号字段可赋值NULL或DEFAULT

               INSET [INTO] tbl_name SET col_name={expr | DEFAULT},...=...          此方法用于子查询(subQuery)只能一次插入一条记录。

               INSET [INTO] tbl_name [(col_name,...)] SELECT...        此方法可以将查询结果插入指定的数据表。

更新记录 (单表更新)UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1 | DEFAULT} [,col_name2={expr2 | DEFAULT}]...[WHERE where_condition]

删除记录 (单表删除)DELETE FROM tbl_name [WHERE where_condition【条件】]

查找记录  (数据表中SELECT语句占表操作的80%以上。)

    SELECT select_expr [,select_expr...]          (可以多表查询:表名.字段名,表名.字段名,...)

      [

         FROM table_references                                                      参照

        [WHERE where_condition]                                                    条件

        [GROUP BY {col_name | position} [ASC | DESC],...]                          分组

        [HVING where_condition]                                                     分组条件

        [ORDER BY {col_name | expr | position} [ASC | DESC],...]                          结果排序

        [LIMIT {[offset,] row_count | row_count OFFSET offset}]                          限制返回数量

      ]

    select_expr 查询表达式:每一个表达式表示想要的某一列,必须有至少一个。

                     多个列之间以英文逗号分隔。

                     星号(*)表示所有列。tbl_name.*可以表示命名表的所有列。

                    查询表达式可以使用[AS] alias_name为其赋予别名。

                    别名可用于GROUP BY,ORDRE BY或HAVING子句。  

   WHERE条件表达式:对记录进行过滤,如果没有指定WHERE子句,则查询所有记录。

                    在WHERE表达式中,可以使用MySQL支持的函数或运算符。

   查询结果分组:GROUP BY【分组】 {col_name【列名】 | position【位置值为数字 1第一个字段,2第二个..】} [ASC【升序 默认】 | DESC]【降序】,...]  

   查询结果分组条件:HVING【拥有 持有】  where_condition【分组条件】  

   对查询结果排序:ORDER BY {col_name | expr | position} [ASC | DESC],...

   限制程序结果返回的数量:LIMIT {[offset,【从第几条开始,从0计起】] row_count【返回记录数量】 | row_count OFFSET offset} 

 

posted on 2018-11-04 22:44  南飞雁ht  阅读(70)  评论(0编辑  收藏  举报