• MySQL的简介、启动及其DDL


      MySQL的各项配置:

      默认会启用TCP/IP网络;

      默认客户端/服务器端口:3306;

      将数据库的BIN目录写入Windows的的path环境变量;

      默认不允许root用户在其他机器上远程登录;

      MySQL正在使用的配置文件:my.ini,可以通过my.ini修改一些配置:

      default-character-set=utf8            客户端默认字符集;

      character-set-server=utf8        服务器默认字符集,即创建数据库和表的默认字符集;

      port=3306                 my.ini中有两个,即客户端和服务器端都指定为3306; 

      default-storage-engine=INNODB       默认存储引擎

      1、SQL

      SQL全称是结构化查询语言,是关系数据库的标准语言。

      根据功能划分,SQL语言主要由以下几部分组成。

    • DML——数据操纵语言,用来插入、修改和删除数据库中的数据。
    • DDL——数据定义语言,建立数据库、数据库对象和定义其列。
    • DQL——数据查询语言,对数据库中的数据进行查询
    • DCL——数据控制语言,控制数据库组件的存取许可,存取权限等。如GRANT、REVOKE。

     

      2、windows中启动、登录MySQL

      (MySQL在默认的情况下查询是不区分大小写的,在配置修改后,需要重启服务才有效)

      DOS启动服务:

      net start mysql                 启动MYSQL服务

      net stop mysql                  停止MYSQL服务

     

      命令行登陆:(也可以通过MySQL自带的MySQL Command Line Client)

      mysql –u root –p  (接下里会提示输入密码)

      ps:如果是连接到另外的机器上,则需要加入一个参数:-h 机器IP

     

      3、显示基本信息:

      status;                                显示当前MySQL服务的运行状态

      select version();                显示当前MySQL版本

      select current_date;        显示当前日期(大小写通用)

      select now();                      显示当前日期、时间

      select database();             显示当前正在使用的数据库

      help content      查看帮助文档目录列表

     

      4、通过DDL进行数据库操作

      show databases;                                        显示所有数据库

      create database <database name>;          创建数据库

      drop database <database name>              直接删除数据库,不提醒

      mysql admin drop <database name>         删除数据库前,有提示

      use <database name>;                              选择数据库

      show tables;                                               显示数据库中的所有表

     

      5、创建表

    /*建表的语法*/
    create table [if not exist] Tablename(
        字段一  数据类型 [字段属性|约束] [索引] [注释] ,
        字段二  数据类型 [字段属性|约束] [索引] [注释] ,
        .........
        )[表类型][表字符集][注释]
    
    /*创建一个InnoDB类型,字符集为utf-8,备注为“test Table”的表*/
    /*在这里,我惊喜地发现,单引号、双引号可以使用在comment关键字中!!*/
    create table test(id int(4))engine=innodb,charset=utf8,comment="test Table";

      通过使用MySQL WorkBench,终于找到了标准语法:

    /*在5.7版本中,数据库名称、表的名称都可以用``包围,加强表达,也可以不加*/
    CREATE TABLE `myschool`.`test`(`id` INT(4) NOT NULL DEFAULT 1 COMMENT '测试编号',  PRIMARY KEY (`id`));
    
    /*现在创建一个有各种属性的表*/
    /*id类型为int()4,非空,默认值为1,名为测试编号*/
    /*这里指定PK的方式为在定义完所有字段后指定*/
    CREATE TABLE `myschool`.`mytsest` (
      `id` INT(4) NOT NULL DEFAULT 1 COMMENT '测试编号',
      PRIMARY KEY (`id`))
        ENGINE = MyISAM
        DEFAULT CHARACTER SET = utf8
        COMMENT = '测试表';
    
    /*我还发现,自增AI和默认Default是冲突的,至少这里是,可能因为AI指定了默认值*/

       SQL为字段提供了各种约束和属性来保证数据的完整性。

      其中主键约束是十分重要的约束,可以使用数据库表中的某一字段or几个字段来唯一标识所有记录。

      (1)单字段主键

    /*在定义字段的同时指定主键*/
    create table student(
        studentNumb INT(4) PRIMARY KEY,
        .....
        )
    
    /*在定义完所有字段后指定主键*/
    create table student(
        studentNumb INT(4),
        studentName VARCHAR(45),
        ....
        PRIMARY KEY(id)
        )

      (2)多字段联合主键

    /*主键由多字段组成*/
    create table student(
        id INT(4),
        name VARCHAR(11),
        ...
        PRIMARY KEY(id,name)
        )

     (3)为表添加注释、设置编码格式

    create table student(
        id INT(4) COMMENT '编号',
        name VARCHAR(11),
        ...
        PRIMARY KEY(id,name)
        )ENGINE=InnoDB,CHARSET=UTF-8,COMMENT ='学生表' 

      

      6、查看表

      show tables;

      describe <table name>;                            展示表的结构

      desc <table name>;                                  展示表的结构

      select * from <table name>                               显示表中的内容

      DOS窗口默认字符集为GBK格式,如果当前MySQL的默认编码格式非GBK,可能会乱码,可以在输出信息之前执行以下语句:

     set names gbk;

     

      7、修改表结构

      首先,可以执行“HELP ALTER TABLE”查看各种需改表结构的语句

      (1)修改表名

    alter table student rename studentinfo;

      (2)添加字段(默认添加到末尾)

    /*经过检验,本版本中,新增字段时的字段名无需添加引号(单、双都会报错)*/
    alter table student add province varchar(30);
    
    /*指定新增字段的位置,可以使用MySQL提供的关键字 FIRST (设定位第一列), AFTER 字段名(设定位于某个字段之后)*/
    alter table student add city varchar(20) after province;

      (3)修改字段——修改字段名和字段属性

    /*只修改字段的属性*/
    /*把字段province的类型从varchar(30)改为varchar(20)*/
    alter table student modify province varchar(20);
    
    /*name为修改后的字段名,同时可以修改字段属性,也可以和原有的一致,但是不能为空*/
    alter table student CHANGE country city char(20) not null;
    /*在我的机器上,这个语句报错不能执行。因为我在第一次定义country字段时,只设置了字段类型一个属性,NN属性并没有设置;现在修改后,我新增了NN属性,报错!*/
    
    alter table student change country city varchar(20);
    /*修改后,执行成功!country属性名改为了city*/
    /*此外,目前为止,所有为名字添加引号的操作都是不必要的,甚至都是报错。这与书本的实例完全不同*/

      (4)删除字段——将table中的某个字段从表中移除

    /*数据表中只剩余一个字段则无法使用DROP来删除字段*/
    alter table student drop city;

      (5)添加主键约束

    /*语法如下*/
    alter table <TableName> add constraint <主键名> primary key <表名>(<主键字段>);
    
    /*将grade表中的gradeId设置为主键*/
    alter table grade add constraint  pk_grade primary key grade(gradeId);

      (6)添加外键约束

    /*语法如下*/
    alter table <TableName> add constraint <外键名> foreign key <外键字段>references <关联表名>(<关联字段>);
    
    /*设置student表的gradeID字段与grade表的gradeId字段建立主外键关联*/
    alter table student add constraint fk_student foreign key gradeId references grade(gradeId);
    
    /*InnoDB类型的表才支持主、外键约束,因此保证相关表都为InnoDB型*/
    /*对于MyISAM类型的表,可以通过建立逻辑关系保证数据的完整性和一致性*/  

      

      8、删除表

      delete from <table name>;                                清空表中内容

      drop table if exists <table name>      删除表(操作之前确认是否有重要数据,可以先备份)

      9、使用MySQL系统帮助文档

      help contents;

      再使用help命令查看相关的具体内容。

  • 相关阅读:
    小程序滴滴车主板块的银行卡管理左滑删除编辑
    超好用超短的小程序请求封装
    如何使用css来让图片居中不变形 微信小程序和web端适用
    纯css手写圆角气泡对话框 微信小程序和web都适用
    小程序getUserInfo授权升级更新登录优化
    一起聊聊3个线程依次打印1、2、3...的故事
    influxdb基础那些事儿
    influxdb的命令们
    Linux namespace浅析
    kubernetes基础概念知多少
  • 原文地址:https://www.cnblogs.com/bigbigbigo/p/8386027.html
Copyright © 2020-2023  润新知