MySQL学习过程(二基本语句及数据类型)

  1. 创建数据库:CREATE DATABASE语句用于创建新的数据库

语法:

           CREATE DATABASE [IF NOT EXISTS] db_name;

           CREATE DATABASE [IF NOT EXISTS] db_name character SET gbk;

查看创建的数据库的定义信息(默认字符编码)

           show CREATE DATABASE db_name;

修改数据库的字符集:

           ALTER DATABASE db_name character SET utf8;

删除数据库:

           DROP DATABASE IF EXISTS db_name;

 

  1. 其他语句

查看当前使用的数据库:

           select database();   //没选定数据库时,返回  null

切换数据库:

           USE db_name;

退出数据库:

           quit 或 exit

 

  1. DDL和DML语句
    1. DDL【操作表及字段】

CREATE TABLE [IF NOT EXISTS] 表名(

           字段1 字段类型(长度) 约束,

           字段2 字段类型(长度) 约束,

           …

           字段n 字段类型(长度) 约束

)[charset=utf8];

 

例子1:

CREATE TABLE IS NOT EXISTS student(

           id int not null,

)CHARSET=UTF-8;

----------------------------------------------------------------------------------------------------------------

增删改查

增、改(字段操作):

           ALTER TABLE student ADD image blob;  //添加image列

           ALTER TABLE student MODIFY address varchar(60); //修改address列,使其长度为60

           ALTER TABLE student DROP image; //删除image列,一次只能删除一列

           ALTER TABLE student CHANGE 旧字段名 新字段名 字段类型 [约束条件]// 修改字段名

改(表):

           RENAME TABLE student TO user; //改表名

-------------------------------------------------------------------------------------------------------------------

删:DROP TABLES table_name;

           SHOW TABLES;   //查看当前数据库中包含的表

           DESC table_name;  //查看表的字段信息

           SHOW CREATE TABLE user;  //查看表的创建细节

DESC table_name; //查询表中包含的字段

    1. DML操作【重要】

DML是对表中的数据进行增、删、改的操作。不能和DDL混淆了。

主要包括:INSERT、UPDATE、DELETE

在MySQL中,字符串类型和日期类型都要用单引号括起来。

空值:null

(1)插入操作:INSERT

语法:INSERT INTO 表名(列名1,列名2…) VALUES(1,值2…);

(2)修改操作:UPDATE

语法:UPDATE 表名 SET 列名1=1,列名2=2… WHERE 列名=;

(3)删除操作:DELETE

语法:DELETE FROM表名【WHERE 列名=值】; //删除指定行数据

DELETE FROM 表名;  //删除表中所有数据

TRUNCATE TABLE 表名;  //删除表和数据,再创建同一个空表

 

数据类型:

---------------------------------------------------------------------------------------------------------------------

           int:整型(4字节)

           double:浮点型(8字节)

                    double(5,2) //最多五位,其中必须由2位小数,最大值为:999.99

           decimal:精确数值数据,最大位数可以是65

                    decimal(5,2) //能够存储五位数和两位小数的任何值,范围是[-999.99,999.99]

---------------------------------------------------------------------------------------------------------------------

           char:固定长度字符串累心;

                    char(10) `aaa    `  //固定10个字符,不足补空格,长度0~255

                    // 缺点:浪费空间;优点:查询速度快。

           varchar:可变长度字符串类型

                    varchar(10) `aaa`  //最多存储10个字符

                    //缺点:查询慢;优点:节省空间。

           text:大文本字符串类型;

                    //有字符编码,存储比较大的文本数据。

---------------------------------------------------------------------------------------------------------------------

           blob: Binary Large Object二进制大对象数据;可以存储图片、音频、视频

           date:日期类型,格式为:yyy-MM-dd

           time:时间类型,格式为:hh:mm:ss

           timestamp:时间戳类型 yyy-MM-dd hh:mm:ss 会自动赋值            

           datetime:日期时间类型 yyy-MM-dd hh:mm:ss

---------------------------------------------------------------------------------------------------------------------

 

常用约束条件:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

           主键约束:primary key  //(保证数据唯一性),不能重复,不能为null;

           唯一约束:unique [key]  //不能重复,可以为null。

           非空约束:not null

           默认约束:default

           外键约束:foreign key

           自动增长:auto_increment

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

查看数据库编码的具体信息: show variables like ‘character%’;

修改数据库服务端编码:

           set character_set_server='utf8';

临时更改客户端和服务器结果集的编码:

           set character_set_client=gbk;

           set character_set_results=gbk;

或者:SET NAMES ‘GBK’’;  //client connection  results

 

 

  1. DQL数据查询

数据库执行DQL语句,不会对数据进行改变,而是让数据库发送结果集给客户端。

查询返回的结果集是一张虚拟表。

查询关键字:SELECT

语法:SELECT 列名 FROM 表名 WHERE à GROUP BY à HAVING à ORDER BY à LIMIT;

SELECT selection_list   //要查询的列名称

           FROM table_list  //要查询的表名称

           WHERE condition  //行条件

           GROUP BY grouping_columns  //对结果分组

           HAVING condition  //分组后的行条件

           ORDER BY sorting_columns  //对结果排序

           LIMIT offset_start, row_count  //结果限定

 

条件查询:

就是在查询时给出where字句,在where字句中可以使用如下运算符及关键字:

比较运算符:

|  =、!=<>、<、<=、>、>=;

|  BETWEEN…AND;

|  IN(set);

|  IS NULL;

关系运算符:

|  AND;  &&

|  OR;  ||

|  NOT;  !

算术运算符:

|  +  -  *  /  %

 

HAVING与WHERE的区别:

  1. HAVING是在分组后对数据进行过滤,WHERE是在分组前对数据进行过滤。
  2. HAVING后面可以使用分组函数(统计函数),WHERE不能。
  3. WHERE是对分组前记录的条件,如果某行记录没有满足WHERE字句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。

 

 

         LIMIT 限制行查询

                   LIMTI 起始行,行数;

                   分页查询://一次查询10行

  1. SELECT * FROM table_name LIMTI 0,10;
  2. SELECT * FROM table_name LIMTI 10,10;
  3. SELECT * FROM table_name LIMTI 20,10;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值