zoukankan      html  css  js  c++  java
  • MySQL_Day1

    基础的数据库操作

    一、基础语句

    --连接数据库
    mysql -uroot -p  
    --修改用户密码
    updata mysql.uesr set authenticaton_string=password('123456')where user='root' and Host = 'localhost';
    --刷新权限
    flush privileges;
    
    ----------------------------------------------------------
    --所有的sql语句都以;结尾
    
    --查询所有数据库
    show databases;
    
    --切换数据库
    use 数据库名字;
    --查看数据库中的所有表格
    show tables;
    --查看表中的所有信息
    describe 表格名称;
    
    --创建一个数据库
    create database 数据库名称;
    
    --退出连接
    exit;
    
    --sql语句中的注释
    -- 单行注释
    /*
    **多行注释
    */
    
    
    
    

    数据库XXX语言 CRUD 增删改查

    DDL 定义

    DML 操作

    DQL 查询

    DCL 控制

    二、操作数据库

    基本操作

    操作数据库>操作数据库中的表>操作数据库中表的数据

    mysql关键字不区分大小写

    • 创建数据库
    --查询有无此数据库 若无则创建
    create database if not exists 数据库名称
    
    • 删除数据库
    --如果存在此数据库 就进行删除
    drop database if exists 数据库名称
    
    • 使用数据库
    -- 若数据库的表或字段是 特殊符号 需要添加 `
    use 数据库名称
    
    • 查看数据库
    show databases; 
    

    数据库的数据(列)类型

    数值

    • tinyint 十分小的数据 1个字节(一般很少用)
    • smallint 较小的数据 2个字节
    • mediumint 中等大小的数据 3个字节
    • int 标准整数 4个字节
    • bigint 较大的数据 8个字节
    • float 浮点数 4个字节
    • double 双精度 8个字节
    • decimal 字符串形式的浮点数 (金融数据处理)

    字符串

    • char 字符串固定大小的 0-255
    • varchar 可变字符串 16字节 0-65535 常用的 string
    • tinytext 微型文本 2^8-1
    • text 文本串 2^16-1 保存大文本

    时间日期

    • date YYY-MM-DD 日期格式
    • time HH:MM;SS 时间格式
    • datetime YYY-MM-DD HH:MM:SS 最常用的时间格式
    • timestamp 时间戳 1970.1.1到毫秒
    • year 年份表示

    null

    • 没有值 未知
    • 注意 不要使用null进行计算 结果为null

    数据库的字段属性

    unsigned:

    • 无符号的整数
    • 不能声明为负数

    zerofill:

    • 0填充
    • 不足的位数 使用0来填充

    auto_increasing(自增);

    • 自动在上一条记录的基础上+1
    • 通常用来设计唯一的主键 index 必须是整数类型
    • 可以自定义设计主键自增的起始值与步长

    非空 NULL not null

    • 假设设置为not null 如果不给它赋值 会报错
    • null 如果不填写值 默认就是null

    每个表必有的字段(阿里标准)

    id   --主键
    version  --乐观锁
    is_delete --伪删除
    gmt_create --创建时间
    gmt_update --修改时间
    

    sql语句创建数据库表

    /*学生表 sql创建 
    学号int 登陆密码varchar 姓名 性别varchar(2) 出生日期(datetime)
    家庭住址 email
    --字符串使用单引号
    */
    CREATE TABLE IF NOT EXISTS `student`(
    	`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号', 
    	`name` VARCHAR(30) NOT NULL DEFAULT 'yiyi' 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 '邮箱',`student`
    	PRIMARY KEY (`id`)
    )ENGINE=INNODB DEFAULT CHARSET=utf8
    

    建表格式

    create table [if not exists] `表名`(
    	`字段名`列类型 [属性] [索引] [注释],
    	`字段名`列类型 [属性] [索引] [注释],
       	......
    	`字段名`列类型 [属性] [索引] [注释],
    )[表类型] [字符集设置] [注释] [主键]
    

    查看数据库语句

    --查看创建数据库的语句
    show create database 数据库名称;
    --查看student数据表的定义语句
    show create table 表名;
    --显示表的结构
    describe 表名称
    

    数据库表的类型

    --数据库引擎
    innoDB   默认使用
    MYISAM   早些年使用
    
    MYISAM INNODB
    事务支持 不支持 支持
    数据行锁定 不支持 支持
    外键约束 不支持 支持
    全文索引 支持 不支持
    表空间的大小 较小 较大 2倍

    常规使用操作:

    • MYISAM 节约空间 速度较快
    • INNODB 安全性高 事务的处理 多表多用户操作

    在物理空间存在的位置

    所有的数据库文件都存在data目录下,一个文件夹对应一个数据库

    本质还是文件的存储

    • innoDB 在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件
    • MYISAM对应的文件
      • *.frm 表结构的定义文件
      • *.MYD 数据文件(data)
      • *.MYI 索引文件

    设置数据库表的字符集编码

    charset = utf8
    

    不设置的话,会是默认的MySQL字符集编码(不自持中文!)

    MySQL的默认编码是Latin1 不支持中文

    在my.ini中 可以配置默认的编码

    character-set-server = utf8
    

    修改与删除表

    修改

    --创建一个表进行修改
    CREATE TABLE IF NOT EXISTS `teacher` (`id` INT(2) NOT NULL AUTO_INCREMENT COMMENT 'test', PRIMARY KEY(`id`))
    -- 修改表名 ALTER TABLE 旧表名 RENAME AS 新表名
    ALTER TABLE teacher RENAME AS teacher1
    -- 增加表的字段  ALTER TABLE 表名 ADD 字段名 列属性
    ALTER TABLE teacher1 ADD age INT(2)
    -- 修改表的字段(重命名,修改约束)
    -- 修改约束    ALTER TABLE 表名 MODIFY 字段名 列属性
    ALTER TABLE teacher1 MODIFY age VARCHAR(11)
    -- 字段重命名  ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性
    ALTER TABLE teacher1 CHANGE age age1 INT(1)
    -- 删除表的字段  ALTER TABLE 表名 DROP 字段名
    ALTER TABLE teacher1 DROP age1
    

    删除

    -- 删除表(如果表存在则删除)
    DROP TABLE IF EXISTS teacher1
    

    所有创建与删除操作尽量加上判断,以免报错

    注意点

    • `` 字段名 使用飘号进行包裹
    • 注释 使用 -- /* */
    • sql关键字大小写不敏感 还是用小写的好
    • 所有的符号都使用英文符号

    多用才能够记住,加油

  • 相关阅读:
    关于神奇的MD5算法21
    【转】C# 轻松实现对窗体(Form)换肤
    个人代码库のXML操作演练
    个人代码库の自定义后缀名
    个人代码库の自定义不规则窗体和控件
    个人代码库の创建快捷方式
    jquery 实现省市级联动
    分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写
    EXTJS 面板控件panel应用
    HTTP 错误 500.21 Internal Server Error处理程序
  • 原文地址:https://www.cnblogs.com/Serendipitychen/p/14095477.html
Copyright © 2011-2022 走看看