MySQL基础学习(一)

MySQL基础(一)

1 安装与配置

  1. 选择典型安装

  2. 在安装目录文件中找到my.ini文件

  3. 修改my.ini文件中:

    [mysql]

    default-character-set=utf8

2 启动与停止

  1. 在Windows命令行模式

  2. 启动

    net start mysql;

  3. 停止

    net stop mysql;

3 登录与退出

  1. 清屏

    cls;

  2. 查看版本信息

    mysql -V

  3. 登录

    mysql -uroot -p -P3306 -h127.0.0.1

  4. 退出

    quit

    exit

    \q

4 修改提示符

  1. 连接客户端时通过参数指定

    shell>mysql -uroot -p --prompt 提示符

  2. 连接上客户端后,通过prompt命令修改

    mysql>prompt 提示符

    参数 描述
    \D 完整的日期
    \d 当前数据库
    \h 服务器名称
    \u 当前用户

    案例分析

mysql>prompt \u@\h \d>

root@localhost <none> >

当前用户@当前主机 未打开任何数据库则显示none

root@localhost <none> > USE tset; %打开数据库

root@localhost test>

5 常用命令以及语法规范

常用命令

  命令
显示当前服务器版本 SELECT VERSION()
显示当前日期时间 SELECT NOW()
显示当前用户 SELECT USER()

MySQL语法的规范

  1. 关键字与函数名称全部大写

  2. 数据库名称、表名称、字段名称全部小写

  3. SQL语句必须以分号结尾

6 如何操作MySQL数据库

  1. 创建数据库(默认自带四个数据库)

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAUIT] CHARACTER SET [=] charset_name

案例分析:

创建最简单数据库

CREATE DATABASE t1;

自定义字符

CREATE DATABASE IF NOT EXISTS t2 CHARACTER SET gbk;

  1. 查看当前服务器下的数据表列表

    SHOW {DATABASE | SCHEMA}

    [LIKE 'pattern' | WHERE expr]

    案例分析:(默认字符为utf8)

    SHOW CREATE DATABASE t1;

    查看警告

    SHOW WARNINGS;

  2. 修改数据库

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

  3. 删除数据库

    DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

7 数据类型

数据类型是指列、存储过程参数、表达式和局部变量的数据特征。它决定了数据的存储格式,代表了不同的信息类型

整型

数据类型 存储范围 字节
TINYINT 有符号值:-128到127(-2^7 到2^7-1) 无符号值:0到255(0到2^8-1) 1
SMALLINT 有符号值:-32768到32767(-2^15到2^15-1) 无符号值:0到65535(0到2^16-1) 2
MEDIUMINT 有符号值:-8388608到8388607(-2^23到2^23-1) 无符号值:0到16777215(0到2^24-1) 3
INT 有符号值:-2147483648到2147483647(-2^31到2^31-1) 无符号值:0到4294967295(0到2^32-1) 4
BIGINT 有符号值:-9223372036854775808到922337303685477587(-2^63到2^63-1) 无符号值:0到18446744073709551615(0到2^64-1) 8

浮点型

数据类型 存储范围
FLOAT[(M,D)] -3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。 M是数字总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7为小数位。
DOUBLE[(M,D)] -1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308

日期时间型

列类型 存储需求
YEAR 1
TIME 3
DATE 3
DATETIME 8
TIMESTAMP 4

字符型

列类型 存储需求
CHAR(M) M个字节,0<=M<=255
VARCHAR(M) L+1个字节,其中L<=M且0<=M<=35535
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','value2',...) 1或2个字节,取决于枚举值的个数(最多65535个值)
SET('value1','value2',...) 1、2、3、4或者8个字节,取决于set成员的数目(最多64个值)

8 数据表操作

数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础。

打开数据库

mysql>USE 数据库名称

案例分析

mysql>USE test;

mysql>SELECT DATABASE();

创建数据表

CREATE [IF NOT EXISTS] table_name (column_name data_type, ...)

案例分析:

mysql>CREATE TABLE tb1(

username VARCHAR(20),

age TINYINT UNSIGNED,

salary FLOAT(8,2) UNSIGNED

);

查看数据表

SHOW TABLES [FROM db_name]

[LIKE 'pattern' | WHERE expr]

案例分析

mysql>SHOW TABLES;

查看数据库所有数据表

mysql>SHOW TABLES FROM mysql;

查看当前数据库

SELECT DATABASE();

查看数据表结构

SHOW COLUMNS FROM tb1_name

案例分析

mysql>SHOW COLUMNS FROM tb1;

记录的插入与查找

插入

INSERT [INTO] tb1_name [(col_name,...)] VALUES(vn1,...)

案例分析

mysql>INSERT tb1 VALUES('Tom',25,7863.25);

mysql>INSERT tb1(username,salary) VALUES('John',4500.69);

查找

SELECT expr, ... FROM tb1_name

案例分析

SELECT * FROM tb1;

9 约束类型

非空约束

  1. NULL,字段值可以为空

  2. NOT NULL , 字段值禁止为空

    案例分析

    mysql>CREATE TABLE tb2(

    username VARCHAR(20) NOT NULL,

    age TINYINT UNSIGNED,

    );

    mysql>SHOW COLUMNS FROM tb2;

    INSERT tb2 VALUES('Tom',NULL); 可行

    SELECT * FROM tb2;

    INSERT tb2 VALUES(NULL,26); 不可行

主键约束 PRIMARY KEY

自动编号 AUTO_INCREMENT

  1. 自动编号,且必须与主键组合使用(反之不一定)

  2. 默认情况下,起始值为1,每次的增量为1

    案例分析

    mysql>CREATE TABLE tb3(

    id SMALLINT UNSIGNED AUTO_INCREMENT,

    username VARCHAR(20) NOT NULL

    );

    发生错误,自动编号必须定义为一个键值

主键约束 PRIMARY KEY

  1. 主键约束

  2. 每张数据表只能存在一个主键

  3. 主键保证记录的唯一性

  4. 主键自动为NOT NULL

    案例分析

    mysql>CREATE TABLE tb3(

    id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

    username VARCHAR(20) NOT NULL

    );

    mysql>SHOW COLUMNS FROM tb3;

    mysql>INSERT TB3(username) VALUES('Tom');

    mysql>INSERT TB3(username) VALUES('John');

    mysql>INSERT TB3(username) VALUES('Rose');

    mysql>SELECT * FROM tb3;

    反之案例分析 不组合自动编号

    mysql>CREATE TABLE tb4(

    id SMALLINT UNSIGNED PRIMARY KEY,

    username VARCHAR(20) NOT NULL

    );

唯一约束 UNIQUE KEY

  1. 唯一约束

  2. 唯一约束可以保证记录的唯一性

  3. 唯一约束的字段可以为空值(NULL)

  4. 每张数据表可以存在多个唯一约束

    案例分析

    mysql>CREATE TABLE tb5(

    id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

    username VARCHAR(20) NOT NULL UNIQUE KEY,

    age TINYINT UNSIGNED

    );

    mysql>INSERT tb5(username,age) VALUES('Tom',26);

    mysql>INSERT tb5(username,age) VALUES('Rose',26);

    mysql>INSERT tb5(username,age) VALUES('Tom',23); 不可行

    mysql>SHOW COLUMNS FROM tb5;

默认约束 DEFAULT

  1. 默认值

  2. 当插入记录时,如果没有明确为字段赋值,则自动赋予默认值

    案例分析

    mysql>CREATE TABLE tb6(

    id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

    username VARCHAR(20) NOT NULL UNIQUE KEY,

    sex ENUM('1','2','3') DEFAULT '3'

    );

    mysql>SHOW COLUMNS FROM tb6;

    mysql>INSERT tb6(username) VALUES('Tom')

    mysql>SHOW COLUMNS FROM tb6;

外键约束(下一小节内容)

小结

数据类型

  1. 整型

  2. 浮点型

  3. 字符型

  4. 日期时间型

数据表操作

  1. 如何创建数据表

  2. 查看数据表

  3. 查看数据表结构

  4. 记录的插入与查找

  5. 主键约束 PRIMARY KEY

  6. 唯一约束 UNIQUE KEY

  7. 默认约束 DEFAULT

  8. 非空约束 NOT NULL

猜你喜欢

转载自blog.csdn.net/qq_360976546/article/details/84196353