数据库-SQL语句+SQL文件

一.SQL语句

SQL语句
    操作所有关系型数据库的计算机语言
    通过可视化软件MySQL-front操作数据库,实际上本质也是在执行SQL语句
    只是,是通过MySQL-front来执行SQL语句,不是我们自己写SQL语句

实际中操作数据库,要通过 cmd 来执行SQL语句,来操作数据库

1,要配置环境变量
    配置环境变量,让程序可以在cmd中正常的执行运行

    win7操作系统,是 弹出一个编辑输入环境变量位置的输入框

    在已有的环境变量配置的最后
    添加 分号 与之前的环境变量区分 
    分号之后,在 复制 bin文件的路径地址
    之后是一路确定

    配置好之后,重启cmd

    输入命令,登录mysql数据库
        输入账号密码 , 就等于 MySQL-front 打开软件,输入账号密码
        -u 是输入账号 
        -p 是输入密码
    mysql -uroot -p    点击回车

    设定cmd中显示的编码格式
        cmd中默认的编码格式是gbk
        数据库中,数据的编码格式是utf8

        SET NAMES gbk;    // 设定编码格式是gbk
        SET NAMES utf8;   // 设定编码格式是utf8

    库结构的操作

        指定使用的 库结构 
            use `库名`;    

        创建库结构
            CREATE DATABASE IF NOT EXISTS `库名`;
                如果创建的库名已经存在,不会创建新的库结构,并且不会报错

            简写  CREATE DATABASE `库名`;
                如果创建的库名已经存在,程序执行会报错,之后的程序不会执行

        查看库结构
            查看所有的库结构
            SHOW DATABASES; 
            
            查看库结构的设置信息
            SHOW CREATE DATABASE IF NOT EXISTS `库名`;

            查看正在使用的库结构
            SELECT DATABASE(); 

            DATABASE() 是 MySQL设定 一个 方法函数,作用就是查询正在使用的库结构

        删除库结构
            DROP DATABASE IF EXISTS `库名`;

            简写
            DROP DATABASE `库名`;

    表结构的操作
        创建表结构 

            每一个表结构都必须有至少一个字段,不能建立一个没有字段的空的表格结构
            如果是多个字段,最后一个字段之后的逗号,必须不要写

            CREATE TABLE IF NOT EXISTS `表名`(
                字段1 数据类型 约束条件,
                字段2 数据类型 约束条件
            )引擎设定 编码格式设定 注释设定
    
        查看表结构
            查看所有的表结构
            SHOW TABLES;

            查看表结构的建立方式
            SHOW CREATE TABLE  `表名`;

            查看表结构中的字段
            DESC `表名`;

            删除表结构
            DROP TABLE `表名`;

    字段的相关设定
        完整设定一个字段,包括
            字段名称 数据类型 属性 约束条件 注释

    MySQL数据库,数据类型
        输入的数据,与设定的字段的数据类型不符合,无法输入

        字段的数据类型,只要设定的合适就行,越小越好
        例如:存储年龄,年龄不能是负数, 0-255的范围就基本够用了,没有必要设定更大的存储范围,占用更多的存储空间
        哪个字段,使用什么数据类型,会在项目手册中做严格的规定,项目的数据库架构师会设计好

        数值类型
            整数类型  通过字段的属性,设定字段的数值范围  是否允许是负数

                TINYINT(M)   1个字节   存储数值范围  -128127   (默认范围)
                                            或者         0255   (UNSIGNED)

                SMALLINT(M)  2个字节   存储数值范围  -3276832767 
                                            或者      065535 

                MEDIUMINT(M) 3个字节    存储数值范围  -83886088388607 
                                            或者        016777215

                INT(M)       4个字节    存储数值范围  -21474836482147483647 
                                            或者        04294967295
                                        
                BIGINT(M)    8个字节    存储数值范围  -92233720368547758089223372036854775807 
                                            或者               018446744073709551615                       

            浮点数类型

                FLOAT(M,D)     -3.4e383.4e38    最多存储7位小数,超出部分无法设定

                DOUBLE(M,D)    -1.7e3081.7e308   最多存储15位小数,超出部分无法设定

                DECIMAL(M,D)   组多存储65位数值        最多存储30位小数
            
            整数的M值,设定数值位数  TINYINT(1)  只允许存储一位数值  只允许有个位 0-9
                        但是实际中,整合的 M 设定值 不起作用,只要不超出整数的范围,都是可以输入的
                        TINYINT(1)  想限定只能输入1位数值,实际上只要不超过范围,都能输入
                        这个 (1) 是没有用的 整数,一般设定数据类型,也不写 (M) 限定值

            浮点数的M,D值 : D 值表示 整个数值中,小数部分的位数  
                                输入数据,超出小数部分,不会存储,会只存储设定部分的小数
                            M 值表示 整个数值中,所有数值的位数
                    FLOAT(7,3) 存储的小数,整数部分和小数部分,一共是7位
                                小数部分是3,整数部分是4位
                                小数部分多了,可以写入,只存储3位
                                整数部分多个,不能写入

        字符串类型   数值太大的数字,也可以存储为字符串形式,为了节约存储空间

            CHAR(M)     定长字符串
                        用于存储固定长度的字符串内容  手机号,身份证号,银行卡号
                        存储范围 : 0255个字符

            VARCHAR(M)  变长字符串
                        用于存储不固定长度的字符串内容  姓名,邮箱,地址...
                        存储范围 : 065535个字符
                                    如果是中文, 理论上最多存储 21848个字符
                                    同一个表结构中,存储的其他数据类型的长度,也会影响VARCHAR存储的长度
                                    一般都存储不到理论上的最大值

            TINYTEXT(M)     255个字符
            TEXT(M)         65535个字符
            MEDIUMTEXT(M)   16777215个字符
            LONGTEXT(M)     4294967295个字符 或者 4G

            M 值,设定存储字符串长度,超出设定不能写入存储

            一般就是用 CHARVARCHAR 内容过多,存储成文件的形式,然后读取文件

        时间类型
            YEAR(2或者4)      2位或者4位年份
            TIME()           格式 HH:MM:SS
            DATE()           YYYY-MM-DD  1001-01-019999-12-31
            DATETIME()       YYYY-MM-DD HH:MM:SS
                                1000-01-01 00:00:00  9999-12-31 23:59:59
            TIMESTAMP()      自动存储当前时间

        特殊类型
            ENUM()           枚举类型,设定输入的数据数值范围,必须是规定的数据
                                性别:,,保密,其他数据不允许输入
                                单选效果

            SET()            集合类型,输入的数据,必须是符合规定的数据
                                多选效果

            BOOLEAN          布尔类型   0 表示 false0 表示 true

        字段的属性
            字段的属性有两个,都是设定给数值类型的字段

            UNSIGNED        设定数值是否可以存储负数
                            默认数值类型是可以存储负数的
                            设定 UNSIGNED 只能存储 0 至 正整数 范围的数值

            ZEROFILL        设定自动补零操作
                            设定数值为2位数值,当前只输入一位数值,ZEROFILL属性,会自动在数值前补零
                            1 --- 01
                            带有 ZEROFILL 属性的字段 会自动带有 UNSIGNED 属性


        字段的约束条件

            NOT NULL        不能输入空值 null

            DEFAULT         设定默认值,如果要输入默认值,
                            可以输入 DEFAULT 关键词,就会写入设定的默认值

            UNIQUE KEY      唯一约束
                            字段输入的数值不能是重复数值

            PRIMARY KEY     主键约束
                            一个表结构,默认只能有一个字段设定主键约束
                            设定主键约束的字段,数据不能重复,不能为空
                            一般与 AUTO_INCREMENT 配合使用
            
            FOREIGN KEY     外键约束
                            多个表 执行联合查询时会使用的外键约束

        字段的注释 
            COMMENT         对字段的说明

        表结构的引擎 编码格式 注释说明
            ENGINE  innoDB 或者 MyISAM
            CHARSET utf8
            COMMENT 注释说明


字段相关操作

修改字段,最好是在字段没有输入数据时修改
如果字段已经有了数据,再来修改字段,如果字段设定与已经存在的字段冲突,会造成修改失败

    修改字段: 字段的数据类型,属性,约束条件,注释,都需要重新设计
                即时你还是原来的设定,也要重新写一遍
        只修改字段名称
            ALTER TABLE `表名`
            CHANGE `旧字段名` `新字段名` 新字段的所有设定

        修改字段的约束条件
            ALTER TABLE `表名`
            MODIFY `字段名` 字段的所有设定  
    
    删除字段
        ALTER TABLE `表名` DROP `字段名`;

    新增字段
        在所有字段之后新增字段
            ALTER TABLE `表名`
            ADD `字段名` 字段的所有设定;

        在所有字段之前新增字段
            ALTER TABLE `表名`
            ADD `字段名` 字段的所有设定 FIRST;

        在指定字段之后新增字段
            ALTER TABLE `表名`
            ADD `字段名` 字段的所有设定 AFTER `指定的字段名`;

数据写入:
    给所有的字段都写入数据
        INSERT INTO `表名` VALUES (数据1,数据2....);
        数据内容必须与字段内容一一对象,不能多也不能少
        如果不想输入,可以使用DEFAULT执行默认值

    给指定的字段写入数据
        INSERT INTO `表名`(`字段1`,`字段2`....) VALUES (数据1,数据2....);()中设定的字段,必须与输入的数据一一对应
        如果不想输入,可以使用DEFAULT执行默认值
        如果设定为NOT NULL的字段,必须有数据的写入,并且不能是NULL

二.SQL文件

这是一个sql文件

-- 创建库结构
CREATE DATABASE IF NOT EXISTS `2002`;

-- 查看库结构

-- 查看所有库结构
SHOW DATABASES; 

-- 查看库结构信息
SHOW CREATE DATABASE IF NOT EXISTS `2002`;

-- 查看正在使用的库结构   需要配合use使用 否则为null
SELECT DATABASE(); 

-- 指定使用库结构
USE `2002`;

-- 删除库结构
DROP DATABASE IF EXISTS `2002`;

-- 创建表结构

-- 简单的创建表结构,至少有一个字段,多个字段,不要写最后一个逗号.
CREATE TABLE IF NOT EXISTS `user1`(
    `name` VARCHAR(50),
    `pwd`  VARCHAR(50)
);

-- 创建一个稍微正规一点的表结构

CREATE TABLE IF NOT EXISTS `user1`(
    `id` SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '主键值字段',
    `username` VARCHAR(50) NOT NULL UNIQUE KEY COMMENT '账号字段,不能为空,不能重复',
    `userpwd`  VARCHAR(50) NOT NULL DEFAULT '666666' COMMENT '密码字段,不能为空,默认值是666666',
    `userage` TINYINT UNSIGNED DEFAULT 18 COMMENT '用户年龄字段,默认值是18岁,不能传存储负数,为是0-255',
    `usersex` ENUM('男','女','保密') DEFAULT '保密' COMMENT '用户性别字段,只能输入男,女,保密,默认值是保密',
    `hobby` SET('吃','喝','玩','乐') COMMENT '爱好选项,只能输入 吃 喝 玩 乐',
    `phone` CHAR(11) NOT NULL UNIQUE KEY COMMENT '手机号,固定11位,不能为空,不能重复',
    `pay` FLOAT(10,3) DEFAULT 8000 COMMENT '薪资字段,最多999万9999',
    `time` TIMESTAMP COMMENT '时间字段,默认存储写入数据时的时间'
);

-- 1,id主键值字段是必须的字段,每个表结构默认都需要有一个
-- 2,UNIQUE KEY 唯一约束 输入的数值不能重复
-- 3,DEFAULT 设定默认值,要执行默认值时,可以就写 DEFAULT
-- 4,ENUM 枚举类型 只能输入 () 中规定的数值 , 并且是单选效果
-- 5,SET 集合类型 只能输入 () 中规定的数值 , 可以是多选,也就是一次性输入多个值
-- 6,UNSIGNED 设定输入的数据不能是负数,只能是 0 - 正数
-- 7,TIMESTAMP 默认存储当前时间


-- 查看所有表结构
SHOW TABLES;

-- 查看表结构创建信息
CREATE TABLE `user1`;

-- 查看表结构字段信息
DESC `user1`;


-- 数据的写入 给所有字段写入数据
INSERT INTO `user1` VALUES (DEFAULT,'张三','123456',20,'男','吃,喝,玩,乐','12345678901',8000,DEFAULT);

-- 写入执行字段的数据 有默认值的,要执行默认值的字段,可以不写数据
INSERT INTO `user1`(`username`,`userpwd`,`usersex`,`hobby`,`phone`) VALUES ('李四','123456','男','吃,喝','12345678902');


-- 第一个字段是id主键值,一般不写,使用DEFAULT
-- 时间是 TIMESTAMP 也是会自动存储时间,使用DEFAULT
-- ENUM 枚举类型,只能输入设定的数值,出入其他数值会报错
-- SET 一次可以输入多个数值,使用逗号间隔

-- 修改字段操作
-- 修改字段,最好是在字段没有输入数据时修改
-- 如果字段已经有了数据,再来修改字段,如果字段设定与已经存在的字段冲突,会造成修改失败

-- 修改字段名
ALTER TABLE `user1`
CHANGE `username` `name` VARCHAR(50) NOT NULL UNIQUE KEY COMMENT '账号字段,不能为空,不能重复';

-- 修改字段设定
ALTER TABLE `user1`
CHANGE `name` VARCHAR(150) NOT NULL UNIQUE KEY COMMENT '账号字段,不能为空,不能重复';

-- 删除字段 
ALTER TABLE `user1` DROP `name`;

-- 新增字段

-- 在所有字段之后
ALTER TABLE `user1`
ADD `name` VARCHAR(150) NOT NULL UNIQUE KEY COMMENT '账号字段,不能为空,不能重复';

-- 在所有字段之前,新增字段
ALTER TABLE `user1`
ADD `name2` VARCHAR(150) NOT NULL UNIQUE KEY COMMENT '账号字段,不能为空,不能重复' FIRST;

-- 在指定的字段之前,新增字段
ALTER TABLE `user1`
ADD `name3` VARCHAR(150) NOT NULL UNIQUE KEY COMMENT '账号字段,不能为空,不能重复' AFTER `userpwd`;


三.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值