MySql教程

MySQL数据库操作

本文主要是介绍MySQL数据库操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.几个基本的数据库操作命令 :

update user set password=password('123456')where user='root'; 修改密码
flush privileges; 刷新数据库
show databases; 显示所有数据库
use dbname;打开某个数据库
show tables; 显示数据库mysql中所有的表
describe user; 显示表mysql数据库中user表的列信息
create database name; 创建数据库
use databasename; 选择数据库

exit; 退出Mysql
? 命令关键词 : 寻求帮助
-- 表示注释

2.创建数据表

属于DDL的一种,语法 :

create table [if not exists] 表名(    '字段名1' 列类型 [属性][索引][注释],
   '字段名2' 列类型 [属性][索引][注释],
  #...
   '字段名n' 列类型 [属性][索引][注释]
)[表类型][表字符集][注释];

说明 : 反引号用于区别MySQL保留字与普通字符而引入的 (键盘esc下面的键).

3.数据值和列类型

列类型 : 规定数据库中该列存放的数据类型

数值类型

tinyint    十分小的数据     1个字节

smallint       较小的数据      2个字节

mediumint  中等大小的数据    3个字节

int       标准的整数      4个字节

bigint        较大的数据      8个字节

float       浮点数        4个字节

double     浮点数        8个字节

decimal      字符串形式的浮点数  金融计算的时候,一般是使用decimal

字符串类型

char    字符串固定大小的  0~255

varchar    可变字符串        0~65535

tinytext     微型文本           2^8 - 1

text      文本串         2^16 - 1

日期和时间型数值类型

date    YYYY-MM-DD,日期格式

time    HH:mm:ss,时间格式

datetime  YYYY-MM-DD HH:mm:ss 最常用的时间格式

timestamp  时间戳, 1970.1.1到现在的毫秒数!

year    年份表示

NULL值

  • 理解为 "没有值" 或 "未知值"

  • 不要用NULL进行算术运算 , 结果仍为NULL

4.数据字段属性(重点)

Unsigned

  • 无符号的整数

  • 声明该数据列不允许负数 .

Zerofill

  • 0填充的

  • 不足位数的用0来填充 , 如int(3),5则为005

自增(Auto_InCrement)

  • 自动增长的 , 每添加一条数据 , 自动在上一个记录数上加 1(默认)

  • 通常用于设置主键 , 且为整数类型

  • 可定义起始值和步长

  • 当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表

  • SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)

非空(NULL 和 NOT NULL)

  • 默认为NULL , 即没有插入该列的数值

  • 如果设置为NOT NULL , 则该列必须有值

默认(DEFAULT)

  • 默认的

  • 用于设置默认值

  • 例如,性别字段,默认为"男" , 否则为 "女" ; 若无指定该列的值 , 则默认值为"男"的值

5.创建数据库表
-- 创建学生表(列,字段)
-- 学号int 登录密码varchar(20) 姓名,性别varchar(2),出生日期(datatime),家庭住址,email
-- 创建表之前 , 一定要先选择数据库

DROP TABLE IF EXISTS student--先删除原有的student表
CREATE TABLE IF NOT EXISTS student (
id INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
name VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
pwd VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
sex VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
birthday DATETIME DEFAULT NULL COMMENT '出生日期',
address VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
email VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY(id) )ENGINE=INNODB DEFAULT CHARSET=utf8

-- 查看数据库的定义
SHOW CREATE DATABASE school;
-- 查看数据表的定义
SHOW CREATE TABLE student;
-- 显示表结构
DESC student;  
-- 设置严格检查模式(不能容错了)
SET sql_mode='STRICT_TRANS_TABLES';

数据表的类型

设置数据表的类型

CREATE TABLE 表名(
   -- 省略一些代码
   -- Mysql注释
   -- 1. # 单行注释
   -- 2. /.../ 多行注释
)ENGINE = MyISAM (or InnoDB)

-- 查看mysql所支持的引擎类型 (表类型)
SHOW ENGINES;

MySQL的数据表的类型 : MyISAM , InnoDB , HEAP , BOB , CSV等...

常见的 MyISAM 与 InnoDB 类型:

经验 ( 适用场合 )  :

  • 适用 MyISAM : 节约空间及相应速度

  • 适用 InnoDB : 安全性 , 事务处理及多用户操作数据表

数据表的存储位置

  • MySQL数据表以文件方式存放在磁盘中

  • 包括表文件 , 数据文件 , 以及数据库的选项文件

  • 位置 : Mysql安装目录\data\下存放数据表 . 目录名对应数据库名 , 该目录下文件名对应数据表 .

  • 注意 :

    • . frm -- 表结构定义文件
    • . MYD -- 数据文件 ( data )
    • . MYI -- 索引文件 ( index )
  • InnoDB类型数据表只有一个 *.frm文件 , 以及上一级目录的ibdata1文件

    MyISAM类型数据表对应三个文件 :

    *.frm      表结构的定义文件

    *.MYD 数据文件(data)

    *.MYI 索引文件 (index)

设置数据表字符集

我们可为数据库,数据表,数据列设定不同的字符集,设定方法 :

  • 创建时通过命令来设置 , 如 : CREATE TABLE 表名()CHARSET = utf8;

  • 如无设定 , 则根据MySQL数据库配置文件 my.ini 中的参数设定

修改数据库

修改表 ( ALTER TABLE )

修改表名 :ALTER TABLE 旧表名 RENAME AS 新表名

            ALTER TABLE student RENAME AS student1

添加字段 : ALTER TABLE 表名 ADD字段名 列属性[属性]

             ALTER TABLE student1 ADD age INT(3)

修改字段 :

  • ALTER TABLE 表名 MODIFY 字段名 列类型[属性]

         ALTER TABLE student1 MODIFY age VARCHAR(11) --修改约束

  • ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性[属性]

         ALTER TABLE student1 CHANGE age age1 INT(2) --字段重命名

删除字段 :  ALTER TABLE 表名 DROP 字段名

        ALTER TABLE student1 DROP age1

删除数据表

语法:DROP TABLE [IF EXISTS] 表名

  • IF EXISTS为可选 , 判断是否存在该数据表

  • 如删除不存在的数据表会抛出错误

其他

    1. 可用反引号(`)为标识符(库名、表名、字段名、索引、别名)包裹,以避免与关键字重名!中文也可以作为标识符!

    2. 每个库目录存在一个保存当前数据库的选项文件db.opt。

    3. 注释:
        单行注释 # 注释内容
        多行注释 /* 注释内容 */
        单行注释 -- 注释内容       (标准SQL注释风格,要求双破折号后加一空格符(空格、TAB、换行等))

    4. 模式通配符:
        _   任意单个字符
        %   任意多个字符,甚至包括零字符
        单引号需要进行转义 '

    5. CMD命令行内的语句结束符可以为 ";", "\G", "\g",仅影响显示结果。其他地方还是用分号结束。delimiter 可修改当前对话的语句结束符。

    6. SQL对大小写不敏感 (关键字)

    7. 清除已有语句:\c

 

这篇关于MySQL数据库操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!