mysql——入门。

1 MySQL简介

1.1数据库概念
  • 数据库,是数据存储的仓库。有“数据库”、“表”、“表数据”、“字段(域)”、“记录” 组成。
  • 数据库就是存储数据的仓库。在数据库中存放表,一个数据库中可以同时存放多张表。在表中存放数据。
1.2数据库类型
  • 关系型:MySQL、Oracle、SQlserver、高思、PostpreDB、DB2、infomix …
  • 非关系型(不仅仅是关系型):nosql 、redisMongoDB
    在这里插入图片描述
1.3关系型和不仅仅关系型数据库区别-

参考链接 https://www.cnblogs.com/Jack666/p/9859040.html

2 MySQL 安装和启动

2.1安装:
  1. Linux 系统联网
  2. sudo apt-get update
  3. sudo apt-get install mysql-server
2.2启动:

有两种方法可以启动、关闭、重启MySQL数据库服务器。

  1. /etc/init.d/mysql start/stop/restart
  2. service mysql start/stop/restart 启动服务
2.3查看:
  1. mysql -V 查看版本
  2. service mysql status 查看当前mysql服务器运行状态。绿灯亮起,表示启动成功。
  3. netstat -apn | grep mysql 查看当前mysql服务器进程(守护进程)信息。 端口:3306

3 MySQL登录和退出

3.1登录:
  • 语法:mysql -h IP地址 -P 端口号 -u 用户名 -p密码
    1. mysql -h 127.0.0.1 -P 3306 -u root -p123456
    2. mysql -u root -p123456 登录本地数据库。 明文密码输入。(常用
    3. mysql -u root -p 回车。 隐藏密码输入。
3.2退出:
  • exit、quit、 \q
  • 优雅的退出:

4 关系型数据库 分类:

  • 基于用户的数据管理系统。 —— Oracle
    • 表存放在 用户名下。
  • 基于数据库的数据管理系统。 —— MySQL
    • 表存放在 数据库名下。
      在这里插入图片描述
      小结:MySQL和Oracle数据库都是关系型数据库,两者前者免费,后者花钱,但后者能够定制,更适合大型公司使用,而后者在中小型公司中应用更加广泛。

5 MySQL的 CURD

  • c:创建 Create 、 u:更新 update 、 R: 查询 Retrieve、 D: 删除 Delete

5.1数据库的 CURD:

  • r 查询数据库:

      show databases;
    
    • 列举MySQL包含的数据库。

      show create database 数据库名;
      
    • 得到创建数据的 SQL语法。 包含 数据库使用的字符集。

  • c 创建数据库:

    完整语法: create database [if not exists] `数据库名` [指定字符集](做项目时一定要指定字符集创建,不然作为新手的我们会哭的)

    • create database if not exists `mydb1` charset=utf8
      
    • create database `mydb2`  -- 字符集默认为 拉丁语 latin1
      

      if not exists 添加上,在“脚本”中,不会出现错误,导致终止。

  • d 删除数据库:

    语法:drop database [if exists] `数据库名`

    mysql> drop database if exists `my db3`;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> drop database mydb2;
    Query OK, 0 rows affected (0.00 sec)
    
  • u 修改数据库:只能修改字符集

    语法:alter database `数据库名` 设置字符集

    mysql> show create database mydb1;
    +----------+----------------------------------------------------------------+
    | Database | Create Database                                                |
    +----------+----------------------------------------------------------------+
    | mydb1    | CREATE DATABASE `mydb1` /*!40100 DEFAULT CHARACTER SET utf8 */ |
    +----------+----------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> alter database mydb1 charset=GBK
        -> ;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> show create database mydb1;
    +----------+---------------------------------------------------------------+
    | Database | Create Database                                               |
    +----------+---------------------------------------------------------------+
    | mydb1    | CREATE DATABASE `mydb1` /*!40100 DEFAULT CHARACTER SET gbk */ |
    +----------+---------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    

表的 CURD

查询表
  1. 查看数据库中的 表: show tables;
mysql> show tables; 
1046 (3D000): No database selected
-- 没有选定数据库

mysql> use mydb2;
Database changed		-- 修改使用数据成功。

  1. 查看创建表的语法:show create table 表名;
mysql> show create table teacher;
| Table   | Create Table 
| teacher | CREATE TABLE `teacher` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(20) NOT NULL COMMENT '姓名',
  `phone` varchar(20) DEFAULT NULL COMMENT '电话',
  `add` varchar(100) DEFAULT '地址不详' COMMENT '地址',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8  

mysql> show create table teacher\G		-- 按字段显示。
*************************** 1. row ***************************
       Table: teacher
Create Table: CREATE TABLE `teacher` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(20) NOT NULL COMMENT '姓名',
  `phone` varchar(20) DEFAULT NULL COMMENT '电话',
  `add` varchar(100) DEFAULT '地址不详' COMMENT '地址',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

  1. 查询表结构: desc 表名;
mysql> desc teacher
    -> ;
+-------+--------------+------+-----+--------------+----------------+
| Field | Type         | Null | Key | Default      | Extra          |
+-------+--------------+------+-----+--------------+----------------+
| id    | int(11)      | NO   | PRI | NULL         | auto_increment |
| name  | varchar(20)  | NO   |     | NULL         |                |
| phone | varchar(20)  | YES  |     | NULL         |                |
| add   | varchar(100) | YES  |     | 地址不详     |                |
+-------+--------------+------+-----+--------------+----------------+
4 rows in set (0.00 sec)

创建表
  • 简单表创建

    • 语法: create table `表名` (字段名 字段类型,字段名 字段类型,…)
    mysql> create table student(id int, name varchar(20), score int);
    Query OK, 0 rows affected (0.03 sec)
    
  • 复杂表创建

    • 语法:create table [if not exists] `表名` ( 字段名 类型 列属性 ,字段名 类型 列属性 …)
    • 列属性:
      1. not null | null 非空、空
      2. auto_increment 自动增长
      3. primary key 主键(非空、唯一)
      4. comment 备注、说明
      5. default ‘默认值’
      6. SQL语句中的 字符串 : 使用 单引号 ‘ ’
    mysql> create table if not exists `doctor2` (
        -> id int(9) not null auto_increment primary key comment '主键id',
        -> name varchar(12) not null comment '姓名',
        -> phone varchar(11) comment '电话号',
        -> `add` varchar(40) default '地址不详' comment '地址信息'
        -> )engine=innodb charset=utf8;
    Query OK, 0 rows affected (0.02 sec)
    
    
    	7. 使用 数据库名.表名 ,直接将表创建到指定的数据库下。
    
    create table mydb1.t1 (id int);
    
删除表
  • 语法:drop table [if exists] `表名`, `表名`, `表名` …;
mysql> drop table if exists `t2`, `t3`, `t4`;
Query OK, 0 rows affected (0.05 sec)
修改表

总体语法: alter table 表名 修改关键字。

  1. 添加表字段: alter table 表名 add [column] 字段名 类型名 [位置]
mysql> alter table doctor2 add column age int(5) after name;
Query OK, 0 rows affected (0.07 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc doctor2;
+-------+-------------+------+-----+--------------+----------------+
| Field | Type        | Null | Key | Default      | Extra          |
+-------+-------------+------+-----+--------------+----------------+
| id    | int(9)      | NO   | PRI | NULL         | auto_increment |
| name  | varchar(12) | NO   |     | NULL         |                |
| age   | int(5)      | YES  |     | NULL         |                |
| phone | varchar(11) | YES  |     | NULL         |                |
| add   | varchar(40) | YES  |     | 地址不详     |                |
+-------+-------------+------+-----+--------------+----------------+

​ 位置:

​ first: 在起始添加新字段。

​ after:在指定字段后添加。

​ 默认:添加至结尾。

  1. 删除字段:alter table 表名 drop[column] 字段名
mysql> alter table doctor2 drop column phone;
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc doctor2;
+-------+-------------+------+-----+--------------+----------------+
| Field | Type        | Null | Key | Default      | Extra          |
+-------+-------------+------+-----+--------------+----------------+
| id    | int(9)      | NO   | PRI | NULL         | auto_increment |
| name  | varchar(12) | NO   |     | NULL         |                |
| age   | int(5)      | YES  |     | NULL         |                |
| add   | varchar(40) | YES  |     | 地址不详     |                |
+-------+-------------+------+-----+--------------+----------------+

  1. 修改字段:

    1. 既修改字段名,同时又修改字段类型 。—— change

      语法:alter table 表名 change [column] 旧字段名 新字段名 新数据类型

      mysql> alter table doctor2 change name fullname char(8);
      Query OK, 0 rows affected (0.06 sec)
      Records: 0  Duplicates: 0  Warnings: 0
      
      mysql> desc doctor2;
      +----------+-------------+------+-----+--------------+----------------+
      | Field    | Type        | Null | Key | Default      | Extra          |
      +----------+-------------+------+-----+--------------+----------------+
      | id       | int(9)      | NO   | PRI | NULL         | auto_increment |
      | fullname | char(8)     | YES  |     | NULL         |                |
      | age      | int(5)      | YES  |     | NULL         |                |
      | add      | varchar(40) | YES  |     | 地址不详     |                |
      +----------+-------------+------+-----+--------------+----------------+
      4 rows in set (0.00 sec)
      
      
    2. 只修改字段类型。—— modify

      语法:alter table 表名 modify [column] 字段名 新数据类型

      mysql> alter table doctor2 modify fullname char(3);
      Query OK, 0 rows affected (0.08 sec)
      Records: 0  Duplicates: 0  Warnings: 0
      
      mysql> desc doctor2;
      +----------+-------------+------+-----+--------------+----------------+
      | Field    | Type        | Null | Key | Default      | Extra          |
      +----------+-------------+------+-----+--------------+----------------+
      | id       | int(9)      | NO   | PRI | NULL         | auto_increment |
      | fullname | char(3)     | YES  |     | NULL         |                |
      | age      | int(5)      | YES  |     | NULL         |                |
      | add      | varchar(40) | YES  |     | 地址不详     |                |
      +----------+-------------+------+-----+--------------+----------------+
      4 rows in set (0.00 sec)
      
      
  2. 修改表名:

    1. rename table 表名 to 新表名
    mysql> show tables;
    +-----------------+
    | Tables_in_mydb2 |
    +-----------------+
    | d2              |
    | doctor          |
    | student         |
    | teacher         |
    +-----------------+
    4 rows in set (0.00 sec)
    
    
    1. alter table 表名 rename to 新表名。
    mysql> alter table d2 rename to d3;
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> show tables;
    +-----------------+
    | Tables_in_mydb2 |
    +-----------------+
    | d3              |
    | doctor          |
    | student         |
    | teacher         |
    +-----------------+
    4 rows in set (0.00 sec)
    
    
  3. 修改引擎:

    语法: alter table 表名 engine=新引擎名

    mysql> alter table d3 engine=myisam;
    Query OK, 0 rows affected (0.03 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
复制表
  1. 复制表数据,不复制表属性

    create table 新表名 select * from 旧表名;
    
  2. 复制表属性,不复制表数据

    create table 新表名 like 旧表名;
    
  3. copy表:

    1. copy表属性
    create table 新表名 like 旧表名;
    
    1. 插入原表所有数据
    insert into 新表名 select * from 旧表名
    

表数据的 CURD

插入

​ 语法: insert into 表名(字段名 …)values (对应值 …)

  1. 插入全部字段:

    insert into stu(id, name, addr, score) values(1,'李白', '江南', 99);
    
  2. 插入部分字段:

    insert into stu(id, name) values(1,'李白');
    
  3. 显示插入空值

    insert into stu(id, name, addr) values(1,'李白', null);
    
  4. 隐式插入空值

    insert into stu(name) values('李白');
    
  5. 显示插入默认值

    insert into stu(name, addr) values('李白', default);
    
    
  6. 一次性插入多条

    insert into stu values(null, '辛弃疾', '河北', 99), (null, '李贺', '湖北', 20), (null, '杜牧', '西安',80);
    
更新

​ 语法:update 表名 set 字段名 = 字段值 [where 条件];

  1. 更新全部信息

    update stu set addr='成都';
    
  2. 更新指定一个字段

    update stu set addr='成都' where id = 10;
    
  3. 更新一个字段为默认值

    update stu set addr=deafult where id = 10;
    
  4. 更新指定一条记录的多个字段。

    update stu set name='李煜', addr='成都', score=99 where id = 10;
    
  5. 更新多条信息。

    update stu set name='李煜', addr='成都', score=99 where id > 10;
    
    update stu set addr='beijing' where id=1 or id=3 or id=5  or id=7;
    
删除

​ 语法:delete from 表名 [where条件]

  1. 删除所有记录

    delete from stu;
    
  2. 删除指定一条记录

    delete from stu where id = 10;
    
  3. 删除指定多条记录。

    delete from stu where addr = '地址不详';
    delete from stu where id >= 5;
    delete from stu where id = 5 or id = 7 or id = 9;
    
  • 清空表:
    • delete from 表名:
      • 逐条删除表中的记录。删除后表空间不会释放。自增增长值不清零。
    • truncate 表名:
      • 直接将表摧毁,按表结构重建。删除后表空间会释放。自增增长值清零。

[外链图片转存失败(img-0TXO4MSO-1566465963102)(课堂笔记.assets/1561368948366.png)]

简单查询
  • select * from 表名 where 条件。
  • select 字段名,字段名,。。。 表名 where 条件。

SQL分类

  • DML:数据库操作语言: insert、update、delete、select。
  • DDL:数据库定义语言:create、alter、drop、truncate
  • DCL:数据库控制语言:commit、rollback

引擎和数据表文件

  • MySQL数据库常用的引擎:innodb、myisam
  • innodb:
    • 表名.frm: 记录表结构
    • 表名.ibd: 记录表数据的 索引信息。(表数据保存在 /var/lib/mysql/ibdata1 中。 该文件可以自动扩容)
  • myisam:
    • 表名.frm:记录表结构
    • 表名.MYD: 存储表数据
    • 表名.MYI: 存储表索引
  • MySQL数据库使用的默认引擎为:Innodb
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值