A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Depro 中级黑马   /  2019-1-3 08:43  /  700 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

# MySQL基础
## 数据库的基本概念
* **数据库的英文单词:** DataBase    简称:DB
* **数据库概念:** 用于储存和管理数据的仓库  
* **数据库的特点:** 1.持久化存储数据的。其实数据库就是一个文件系统。2.方便存储和管理数据。3.使用了统一的方式来操作数据库。--SQL
* **常见的数据库软件:** Oracle,MySQL,Microsoft SQL Server,DB2等
* 关系型数据库:以行和列形式进行存储
* 非关系型数据库:以键值对的形式进行存储
## MySQL数据库软件
* 配置
        * mysql服务启动
                * 手动
                * cmd-->services.msc打开服务窗口
                * 使用管理员打开cmd
                        * net start mysql : 启动mysql的服务
                        * net stop mysql:关闭mysql服务
                * MySQL登录
                        * mysql -uroot -p密码
                        * mysql -hip -uroot -p连接目标的密码
                        * mysql --host=ip --user=root --password=连接
                * 目标的密码
                        * MySQL退出:exit,quit
                        * MySQL目录结构
                                * 安装目录
                                        * 配置文件:my.ini
                                * 数据目录
                                        * **几个概念:**
                                                * 数据库:文件夹
                                                * 表:文件
                                                * 数据:数据
## SQL
* **SQL:** Structured Query Language:结构化查询语言。其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。
* **SQL通用语法:**
        * SQL语句可以单行和多行书写,以分号结尾。
        * 可使用空格和缩进来增强语句的可读性。
        * MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
        * 3 种注释:
                * 单行注释: -- 注释内容 或 # 注释内容(mysql 特有)
                * 多行注释: /* 注释 */
* **SQL分类:**
        * **DDL(Data Definition Language)数据定义语言:** 用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等。
        * **DML(Data Manipulation Language)数据操作语言:** 用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等。
        * **DQL(Data Query Language)数据查询语言:** 用来查询数据库中表的记录(数据)。关键字:select, where 等。
        * **DCL(Data Control Language)数据控制语言(了解):** 用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等。
## DDL:操作数据库,表
* **操作数据库:CRUD**
        * **C(Create):创建**
                * 创建数据库:create database 数据库名称;
                * 创建数据库,判断不存在,再创建: create database if not exists 数据库名称;
                * 创建数据库,并指定字符集:create database 数据库名称 character set 字符集名;
        * **R(Retrieve):查询**
                * 查询所有数据库的名称: show databases;
                * 查询某个数据库的字符集:查询某个数据库的创建语句:show create database 数据库名称;
        * **U(Update):修改**
                * 修改数据库的字符集:alter database 数据库名称 character set 字符集名称;
        * **D(Delete):删除**
                * 删除数据库: drop database 数据库名称;
                * 判断数据库存在,存在再删除:drop database if exists 数据库名称;
        * **使用数据库**
                *  查询当前正在使用的数据库名称: select database();
                *   使用数据库:use数据库名称;
* **操作表**  
        * **C(Create):创建**
                * 语法:
                        * create table 表名(
                                 列名1 数据类型1,
                                列名2 数据类型2,
                                 ....
                                列名n 数据类型n
                                );
                        * 注意:最后一列,不需要加逗号(,)
                        * 数据库类型:
                                *  int:整数类型: age int
                                *  double:小数类型: score double(5,2)
                                *  date:日期,只包含年月日,yyyy-MM-dd
                                *  datetime:日期,包含年月日时分秒         yyyy-MM-dd HH:mm:ss
                                *  timestamp:时间错类型        包含年月日时分秒         yyyy-MM-dd HH:mm:ss       
                                        *  如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
                                *  varchar:字符串
                                        *   name varchar(20):姓名最大20个字符
                                        *  zhangsan 8个字符  张三 2个字符
                        * 创建表:
                                 create table student(
                                id int,
                                name varchar(32),
                                age int ,
                                score double(4,1),
                                birthday date,
                                insert_time timestamp
                        );
                        * 复制表:create table 表名 like 被复制的表名;          
        * **R(Retrieve):查询**
                * 查询某个数据库中所有的表名称:show tables;
                * 查询表结构:desc 表名;
        * **U(Update):修改**
                *  修改表名:alter table 表名 rename to 新的表名;
                *  修改表的字符集:alter table 表名 character set 字符集名称;
                *   添加一列:alter table 表名 add 列名 数据类型;
                *  修改列名称类型:alter table 表名 change 列名 新列名 新数据类型;alter table 表名 modify 列名 新数据类型;
                *   删除列:alter table 表名 drop 列名;
        * **D(Delete):删除**
                * drop table 表名;
                * drop table  if exists 表名;

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马