mysql数据库与mysql函数库学习笔记

主页 > 学习 > php >

mate 1083
mysql数据库与mysql函数库
标题
副标题
解释
例子
 
数据库(DataBase DB)
什么是数据库
存储一定结构的数据的仓库
 
 
数据库的分类
 
a.关系型数据库:mysql, sqlserver,      orcale等
b.非关系型数据库:mongoDB等(通过对象建立联系)
 
 
 
 
 
 
 
命令行模式
 
     开始-运行-cmd      (window窗口+R)
 
     1. cd..      跳出文件夹
     2. cd 文件夹名称      进入文件夹
     3. 盘符: f: 选择盘符
 
 
MYSQL配置文件( my.ini)中的参数
 
[mysqld]
 
    # The TCP/IP      Port the MySQL Server will listen on
    port=3306      端口号
 
    #Path to      installation directory. All paths are usually resolved relative to      this.
         basedir="F:/PSD1510/mysql/"
             数据库安装位置 
 
    #Path to the      database root
    datadir="C:/Documents and Settings/All      Users/Application Data/MySQL/MySQL Server      5.5/Data/"
             数据库存放位置
 
         character-set-server=utf8
             服务器端的默认编码
 
         default-storage-engine=INNODB
         mysql数据库的默认引擎
 
 
mysql 的登录和退出
 
 登录: mysql -h主机名称      -u用户名
           -p密码      -P端口号      -D数据库名称
                 例如:
          mysql -uroot      -proot
          mysql      -hlocalhost -uroot -proot
 
          mysql      -hlocalhost -uroot -proot -P3306
            退出:
            exit;
            quit;
       \q;
 
 
修改提示符(prompt)
 
  a. prompt      提示符名称
       b. mysql -uroot -proot      --prompt=\h\u\D\d           
          \h      主机名称
          \u      用户名称
          \D      英文时间日期
          \d      数据库名称
 
 
恢复修饰符
 
prompt mysql>
 
 
注释
 
# 注释内容
            -- 注释内容
 
 
SQL语句:结构化查询语句
 
 (1)DDL数据定义语言,创建数据库,创建表
                     创建视图,存储过程等
                     创建(CREATE) 修改(ALTER) 删除(DROP)
            (2)DML数据操作语言,用来操作数据,对数据
                        进行插入(INSERT),修改(UPDATE),
                        删除(DELETE)
            (3)DQL数据查询语言,对数据进行查询(SELECT)
            (4)DCL数据控制语言,GRANT,REVOKE分配和取消权限
 
 
SQL语句语法规范
 
 (1)系统命令使用大写,名称使用小写
            (2)SQL语句以分号或 \g      分隔符结束
                    修改指定结束分隔符用 delimiter 结束符号名称
            (3)SQL语句支持折行,但完整的名称,函数,引号不能拆开写
            (4)名称不能与关键字和保留字冲突,一旦冲突用反引号`名称`解决
 
 
数据库的默认写法
 
SELECT VERSION();      数据库版本
        SELECT USER();      当前数据库的用户
        SELECT NOW();      当前系统时间日期
 
 
创建库与指令
查看mysql中的所有数据库
(1)      查看mysql中的所有数据库
                SHOW DATABASES;
 
 
 
创建数据库(DDL)
 
       (2)      创建数据库
        CREATE DATABASE      [IF NOT EXISTS] 数据库名称
             [[DEFAULT] CHARACTER SET      [=]'编码方式']
                     例如:CREATE DATABASE      psd1510;
                 CREATE DATABASE psd1510 DEFAULT CHARACTER SET      'utf8';
                 CREATE DATABASE IF NOT EXISTS psd1510 DEFAULT CHARACTER SET      'utf8';
 
 
 
查看创建的数据库命令
 (3)查看创建的数据库命令
             SHOW CREATE DATABASE 数据库名称;
 
 
 
修改数据库编码
 
(4)修改数据库编码
ALTER DATABASE      数据库名称
        [DEFAULT] CHARACTER      SET [=]'编码形式';
 
 
 
删除数据库
删除数据库
DROP DATABASE [IF EXISTS]      数据库名称;
 
 
 
打开选定的数据库
打开选定的数据库
 USE 数据库名称;
 
 
 
显示当前选定的数据库
显示当前选定的数据库
SELECT DATABASE();
 
 
表的相关指令
查看当前数据库中的表
11创建表(DDL)
             (1)查看当前数据库中的表
         SHOW      TABLES;
 
 
 
创建表
(2)创建表
        CREATE TABLE      [IF NOT      EXISTS]
                      表名称(
                         列名称(字段名称)      数据类型[字段属性或完整约束条件],
               ....                       
        )[ENGINE=InnoDB 数据库引擎      DEFAULT CHARSET=编码形式];
 
 
 
查看表结构
DESC      表名称;
         DESCRIBE      表名称;
         SHOW COLUMNS FROM      表名称;
 
 
 
查看创建表的命令
(4)查看创建表的命令
              SHOW CREATE TABLE 表名称; 
 
             说明:数据库最小单位是表,创建表至少要有
                      一个字段,表一定是先用结构,后添加数据
 
 
数据管理
数据添加(DML)
 INSERT [INTO] 表名      (字段1,字段2...)
            VALUE[S](值1,值2...);
 
 
 
数据查询(DQL)
SELECT * FROM      表名;
       SELECT 字段1,字段2... FROM      表名; 
 
 
mysql数据类型
(1)整型
 TINYINT[UNSIGNED|ZEROFILL]:
             无符号位范围:0~255 (大小1字节 2^8)
             有符号位范围:-128~127 
         SMALLINT[UNSIGNED|ZEROFILL]:
             无符号位范围:0~65535 (大小2字节 2^16)
             有符号位范围:-32768~32767 
         MEDIUMINT[UNSIGNED|ZEROFILL]:
             无符号位范围:0~16777215 (大小3字节      2^24)
             有符号位范围:-8388608~8388607 
         INT[UNSIGNED|ZEROFILL]:
             无符号位范围:0~4294967295 (大小4字节      2^32)
             有符号位范围:-2147483648~2147483647
         BIGINT[UNSIGNED|ZEROFILL]:(大小8字节 2^64)
 
说明:
           字段属性:
    a. UNSIGNED:无符号位,正数
    b.      ZEROFILL:填补0,结合显示长度使用,
               当显示长度小于指定长度用0填补,
               自动添加UNSIGNED
 
unsigned[ansaide]:无符号位
 
(2).浮点型
FLOAT[(M,D)][UNSIGNED|ZEROFILL]:
                单精度浮点范围: -3.40E38~3.40E38
          DOUBLE[(M,D)]//(debo)[UNSIGNED|ZEROFILL]:
                双精度浮点范围: -1.79E308~1.79E308
          DECIMAL[(M,D)]//(deseme)[UNSIGNED|ZEROFILL]:
          DECIMAL没误差存储
         说明:      M代表小数点之前的总位数,
              D小数点后的中位数
              M最大65个,D最大30
                       默认值 M 10个 ,D 0个
 
 
 
(3)字符型
CHAR[(M)]:定长范围      0~255字节(一个字母占1字节)
      VARCHAR[(M)]:变长      0~65535字节
              VARCHAR的长度范围受下面条件影响
                a.      VARCHAR的长度范围至多65535字节
                b.编码影响
                     gbk:至多占2字节      65532/2
                     utf8:至多占3字节      65532/3=21844字节
                c.表中所有字段中VARCHAR长度 65535 
           TINYTEXT:至多255字节
           TEXT:至多65535字节
           MEDUIMTEXT:至多16777215字节
           LONGTEXT:至多4294967295字节
                说明:
 
              CHAR效率高但不升空间
         VARCHAR      省空间但效率低
              TEXT效率最大
 
 
 
(4)枚举类型
enum: 例如      enum('man','woman','scret')         
        说明:最大能存      65535个值
 
 
二.帮助
\h 命令
   ? 命令
   help      命令 
 
 
 
三.完整约束条件1
[NOT NULL][DEFAULT]
   [[PRIMARY]      KEY]
   [UNIQUE [KEY]]
        [AUTO_INCREMENT]
1.NOT NULL:不能为空 
       2.DEFAULT:默认值
       3.[PRIMARY]KEY:一个表中必须
                   有一个主键(唯一标识),
                   自动添加NOT      NULL,
                   不重复
  4.UNIQUE      [KEY]:一个表中只能
               有一个主键但可以有多个不重复      
  5.      AUTO_INCREMENT:每次自动增加1,
               必须和 PRIMARY KEY结合使用 
 
 
四.表结构操作(DDL)
(1)添加表一个字段
(1)添加表一个字段
  ALTER TABLE 表名
       ADD 字段名称 数据类型
  [字段属性][FIRST|AFTER 字段名称]
 
 
 
(2)添加表的多个字段
ALTER TABLE 表名
  ADD 字段名称 数据类型
       [字段属性][FIRST|AFTER 字段名称],
  ADD 字段名称 数据类型
       [字段属性][FIRST|AFTER 字段名称],
  ...
 
 
 
(3)删除表中的字段
(3)删除表中的字段
  ALTER TABLE 表名
       DROP 字段名称,
  DROP 字段名称,
  ...
 
 
 
(4)修改数据类型
)修改数据类型
  ALTER TABLE 表名
  MODIFY      字段名称 数据类型
  [字段属性][FIRST|AFTER 字段名称]
 
 
 
(5)修改字段名称
 (5)修改字段名称
  ALTER TABLE      表名
  CHANGE 旧字段名 新字段名 数据类型
[字段属性][FIRST|AFTER 字段名称]
 
 
 
(6) 修改默认值
(6) 修改默认值
  ALTER TABLE 表名
       ALTER 字段名 SET DEFAULT 值
 
 
 
(7) 删除默认值
(7) 删除默认值
  ALTER TABLE 表名
       ALTER 字段名 DROP DEFAULT
 
 
 
(8) 添加主键(PRIMARY KEY)
(8) 添加主键(PRIMARY KEY)
  ALTER TABLE      表名 
  ADD PRIMARY KEY(字段名)
 
 
 
(9) 删除主键
(9) 删除主键
  ALTER TABLE      表名 
  DROP PRIMARY KEY
 
 
 
(10)添加唯一性
10)添加唯一性
  a.ALTER TABLE      表名
    ADD UNIQUE KEY|INDEX(字段名)
  b.ALTER TABLE      表名
    ADD [CONSTRAINT 约束名称] UNIQUE      KEY|INDEX(字段名)
           说明:如果没定义约束名称,将字段作为约束名称
 
 
 
(11)删除唯一性
ALTER TABLE 表名
  DROP KEY|INDEX      约束名称
 
 
 
(12)表重命名
(12)表重命名
    a. ALTER TABLE      表名
       RENAME [AS|TO]      新表名
    b. RENAME TABLE      旧表名
       TO 新表名
 
 
 
(13)重置 AUOT_INCREMENT初始值       
(13)重置 AUOT_INCREMENT初始值       
    ALTER TABLE 表名
         AUOT_INCREMENT=值
 
 
五.数据操作语言(DML)
1.添加(INSERT)
1.添加(INSERT)
         a.没有字段(FIELDS)的数据添加(添加字段信息字段值安顺序依次添加)
     INSERT      [INTO] 表名 
          VALUE[S](值...)
    b.有字段的数据添加
         INSERT [INTO] 表名(字段名,字段名...)
          VALUE[S](值...)
         c.多条记录(RECORDS)添加
    INSERT [INTO]      表名(字段名,字段名...)
          VALUE[S]
     (值...),
          (值...),
     (值...),
          ...
    d.INSERT ...SET(只能添加一条记录)
 INSERT 表名 SET      字段名=值,字段名=值...
 
 
 
2.更新(UPDATE)
2.更新(UPDATE)
    UPDATE 表名 SET      字段名=值,字段名=值...[WHERE 条件]
            说明:如果没有条件,将会更新整个表中的值
 
 
 
3.删除表(DELETE)
3.删除表(DELETE)
    a. DELETE      FROM 表[WHERE 条件]
         说明:如果没有条件,将会清空整个表,
      AUTO_INCREMENT      不重置
    b. TRUNCATE [TABLE]      表名
                清空整个表,AUTO_INCREMENT 重置
 
truncate[chuankete]:被删节的
六 数据查询语言(DQL)
(1)查询所有字段
(1)查询所有字段
   SELECT * FROM      表名;
     说明:效率低
 
 
 
(2)查询指定字段
(2)查询指定字段
   SELECT      字段名|expr,字段名|expr
   ...
   FROM      表名
 
 
 
(3)字段起别名
(3)字段起别名
   SELECT 字段名 [AS]      别名
   ...
   FROM 表名
 
 
 
(4)表名起别名
(4)表名起别名
   SELECT      字段名
   ...
   FROM 表名 [AS]      别名
 
 
 
(5)表名.字段名(来着哪个表的字段) 
(5)表名.字段名(来着哪个表的字段) 
   SELECT      表名.字段名
   ...
   FROM 表名
 
 
 
(6)数据库名.表名
(6)数据库名.表名
   SELECT      字段名
   ...
   FROM    数据库名.表名
 
 
 
 
注意:
        当输入中文信息,需要临时将客户端实现中文编码
  SET NAMES GBK;       
 
 
 
SELECT 字段名|expr ...
  FROM 表名       
  [WHERE 条件]
  [GROUP BY 字段]
  [HAVING      字段]
  [ORDER BY 字段]
  [LIMIT      [OFFSET],LENGTH]
 
 
 
1.[WHERE    条件]:过滤条件查询
a.比较运算: > >= < <=      = 
                 != <> <=>(判断null值)
 
 
 
 
b. IS (NOT) NULL    (判断null值)
 
 
 
 
c. (NOT) BETWEEN ... AND      ...(范围值)
 
 
 
 
d. (NOT) IN(值,值,值...)    (固定值)
 
 
 
 
e. AND && 逻辑与
 
 
 
 
f. OR || 逻辑或
 
 
 
 
g. [not] LIKE string [ESCAPE      string]
g. [not] LIKE string [ESCAPE      string]
                模糊查询
             关键字
          '%'代表0个或1个或多个任意字符
          '_'代表一个任意字符
 
 
2.[GROUP BY 字段]
 
将某个字段中相同的值分
                               为一组实现分组效果,每组中的结
                               果只显示一个值
         说明:一般结合聚合函数使用
           count:个数
              count(字段):不包含null
              count(*):包含null值
           max(字段):最大值
      min(字段):      最小值
           avg(字段):平均值
           sum(字段):求和
 
 
3.[HAVING 字段]
 
3.[HAVING 字段]:对分组后的二次过滤
         说明:HAVING 是对分组的 过滤条件查询
 
 
4.[ORDER BY 字段]排序
 
4.[ORDER BY 字段]排序
 
 
5.[LIMIT    [OFFSET],LENGTH]
 
5.[LIMIT [OFFSET],LENGTH]
 
         说明:实现web页面的分页效果
           OFFSET:偏移量,记录从0开始编号
                               起始记录数
           LENGTH:返回几条记录
           OFFSET计算:(当前页-1)*每页显示条数  
 
 
二.MYSQL运算符和函数
 
 
 
 
1.算术运算符和函数
a.算术运算符 + - * / %    MOD
 
 
 
 
b.函数
   b.函数
          POW,POWER:幂运算
          SQRT:平方根
          FLOOR:向下取整
          CEIL:向上取整
          ROUND:四舍五入
     RAND:随机数 0<=x<1      浮点
     例如: RAND()*100 0<=x<100      浮点
        ROUND(RAND()*100)      整数 
 
 
2.字符函数
 
2.字符函数
         LOWER:返回小写字母
    UPPER:返回大写字母
         TRIM:清除两边空格
    LTRIM:清除左空格
         RTRIM:清除右空格
         CONCAT(string,string):将多个字符连接
         CONCAT_WS(delimiter,string,string):将多个字符连接
         SUBSTR(string,start,length):
         SUBSTRING(string,start,length):
             字符串截取(编号从1开始)
         REPLACE(string,search,replacement):
             替换
    LENGTH:返回字符串长度
    [NOT] LIKE      string [ESCAPE string]
 
 
3.比较运算
 
3.比较运算
    a. > >= <      <= =
       != <>      <=>
    b. IS (NOT)      NULL判断null值
    c. (NOT) BETWEEN ...      AND...
    d. (NOT) IN(值,值...)
 
 
4.逻辑运算符
 
4.逻辑运算符
     !      逻辑非
     && AND      逻辑与
     || OR 逻辑或
 
 
5.信息函数
 
5.信息函数
    VERSION()      MYSQL版本号
    NOW() 系统时间日期
    USER()      MYSQL 登录用户
    DATABASE()      查看当前打开的数据库
         LAST_INSERT_ID():当有AUTO_INCREMENT时使用 
            显示最后添加的 ID号,如果一次添加多行信息,
            只返回第一个ID号 
         FOUND_ROWS():显示所有查询的记录数
         ROW_COUNT():返回增/删/改的影响行数
 
 
7.聚合函数
 
 7.聚合函数
          COUNT():个数
          MAX():最大值
          MIN():最小在
          AVG():平均值
     SUM():求和
 
 
8.密码函数
 
8.密码函数
          PASSWORD()
     MD5()
说明:用 SELECT      显示所有结果  
 
 
一.多表操作1
 
1.多表更新
   UPDATE      表名1,表名2...
   SET 字段名=值... WHERE条件
 
 
1.多表更新
 
 
 
 
2.多表连接查询
 
SELECT 字段名... FROM      表1
      连接类型 表2 ON      条件 
          连接类型:
         内连接:INNER      JOIN:查找符合条件的信息
              外链接:
                  左外链接:LEFT (OUTER)      JOIN
                            查找左边表的全部信息和右边
                            表中符合条件的信息
                  右外链接 :RIGHT (OUTER)      JOIN
                            查找右边表的全部信息和左边
                            表中符合条件的信息
                  说明:不满足条件的信息用NULL 填补     
 
 
二.约束(Constraint)
 
1.约束:实现对字段的非空,唯一,完整性的约束
 
 
2.分类:
 
a.功能分
                     非空(NOT      NULL)
                     默认值(DEFAULT)
                     主键(PRIMARY      KEY)
                     唯一(UNIQUE      KEY)
                     外键(FOREIGN KEY)
 
 
 
 
b.按约束的字段个数分
                  列级约束:将约束条件写到一个字段后
                 NOT      NULL,DEFAULT
           &n
随机新闻
收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!