MySQL的基本操作

时间:2022-09-16 19:42:27

数据库基本概念

1. 数据库服务器

  安装了数据库软件的电脑,就是“数据库服务器”。
  安装了Apache软件的电脑,就是“WWW服务器”。
   数据库服务器,提供对数据的管理、更新、安全、事务等方面功能。
  举例:数据库服务器,可以看成是一个“文件柜”。

2. DBMS

  DBMS(Database Management System)数据库管理系统,是一个管理数据的大型软件。一般一个数据库系统(Database System,DS)可分为数据库(Database,DB)与数据库管理系统DBMS(Database Management System)两部分。
   常用DBMS软件有哪些?

  • Access:是微软的小型数据库。
  • SQL Server:是微软的大中型数据库。
  • Oracle:是美国甲骨文公司的产品。大型、或超大型数据库。
  • MySQL:原始瑞典的AB公司产品。后来被甲骨文公司收购。一般认为:MySQL只适用中小型网站数据库。是免费的产品。

3. 数据库

  数据库:存储数据的仓库。
  举例:数据库,可以看成是一个“文件柜”中的“小格子”。还可以看成是不同的“文件夹”。

4. 数据表

  数据表是存储数据的真正的地方。
   举例:数据表,可以看成是一个具体的“文件”。其实,就是一张“学生成绩表”。

5. 记录、字段、数据

MySQL的基本操作

MySQL的基本操作

MySQL登录和退出——在CMD模式操作

  在Mac的shell模式下和在Windows的cmd下的具体操作是一样的。Mac下使用MAMP不需要配置环境变量,在mac的下通过终端shell来操作mysql数据库

1. 登录到MySQL服务器

  • 语法格式:mysql.exe –h主机名 –u用户名 –p密码
  • 参数说明:
    • mysql.exe是mysql服务器的主应用程序。
    • -h代表MySQL数据库主机名(MySQL数据库端口号3306)
      • 如:localhost或127.0.0.1
    • -u代表MySQL用户名。如:root
    • -p代表MySQL密码。如:root
    • 注意:各个参数之间用空格隔开。
  • 举例:mysql –hlocalhost –uroot -proot
    MySQL的基本操作
    MySQL的基本操作

2. 退出MySQL客户端

MySQL的基本操作

MySQL数据库操作

1. 显示数据库

  • 语法:SHOW DATABASES;

MySQL的基本操作

2. 创建数据库

  • 语法格式:CREATE DATABASE [IF NOT EXISTS] db_name [CHARSET utf8]
  • 参数说明:
    • create database是系统命令。
    • IF NOT EXISTS 是可选项。是一个条件判断。如果不存在,则创建数据库。
    • db_name:是自定义的数据库名称。
    • 数据库名称的命名规则,与PHP变量一样。
      • 包括 a-z、0-9 、_这些符号(数字也可以开头)。
      • 可以包含数字,但如果以数字开头的话,使用时要加上括号
        • 比如 Select * from [2Table]
      • 不区分大小写。
    • CHARSET是设置数据库的默认字符集。默认字符集为lain1。
    • 注意:如果设置为UTF8,不能带中划线。PHP中要求必须带中划线。
  • 举例:
    • create database 007online; //默认字符集是latin1
    • create database if not exists 007online; //如果数据库不存在,再进行创建
    • create database 007online charset utf8; //指定数据库的默认字符集为utf8

MySQL的基本操作

3. 删除数据库

  • 语法:DROP DATABASE [IF EXISTS] db_name;

MySQL的基本操作

MySQL的基本操作

MySQL数据库字符集

1. 查看数据库的字符集

  • 含义:显示创建数据库的SQL语句
  • 语法:SHOW CREATE DATABASE db_name;
  • 举例:show create database 007online;

MySQL的基本操作

2. 通过MySQL命令来修改数据库的字符集

  • 语法:ALTER DATABASE db_name DEFAULT CHARACTER SET utf8
  • 举例:alter database 007online default character set utf8

MySQL的基本操作

MySQL数据表操作

1. 选择数据库

  • 描述:选择当前要操作的数据库,当前数据库只能是一个。
  • 语法:USE db_name;
  • 举例:use 007online;

2. 显示所有的数据表(文件)

  • 描述:显示当前数据库下的,所有数据表。
  • 语法:SHOW TABLES;

3. 创建数据表的结构

  • 语法:CREATE TABLE table_name(col_name col_type col_attr, col_name col_type col_attr,……)
  • 参数:

    • col_name:列的名称。
    • col_type:列的类型。如:tinyint、int、bigint、char、varchar、text、date、time等。
    • col_attr:列的属性。
    • NOT NULL | NULL:该列是否可以为空。
    • DEFAULT default_value:指该列的默认值。
      • default_value默认值可以是字符串,也可以是整型。
    • AUTO_INCREMENT:该列为自动增长型,或者自动编号。要求该列必须是整型。一个表只能有一个auto_increment属性。
    • PRIMARY KEY:主键。指定该列的值具有唯一性,主键所在的列不能为空。一个表的主键只能有一个。
    • id字段的属性必须有:NOT NULL AUTO_INCREMENT PRIMARY KEY

        一个数据表,由多个列构成。多个列定义之间用英文下的逗号隔开。

MySQL的基本操作

4. 删除数据表

语法:DROP TABLE [IF EXISTS] table_name;
举例:drop table news;

5. 修改数据表

  使用数据表,使用的命令 alter table 。但是这个命令非常复杂,建议看懂就行。
  还可以使用phpMyAdmin来进行表结构的修改。

6. describe显示表的结构定义

  • 语法:DESCRIBE table_name;

MySQL数据类型

1. 整型浮点型

(1)整型

  tinyint     最小型整数   0-255(-128 ~ +127)       1个字节
smallint 小型整数 0-65535 2个字节
mediumint 中型整数 0-1677万 3个字节
int 一般整数 0-21亿 4个字节
bigint 最大整数 0-42亿 8个字节

(2)浮点型

  float(M,D)    单精度(精确到小数点后7位) M代表长度,D代表小数位数
举例:float(6,2) //总长度为6位,小数位数为2位,小数点不算。存的最大值为9999.99
double(M,D) 双精度(精确到小数点后15位) M代表长度,D代表小数位数。

2. 日期时间型

 date     日期型     格式为: “YYYY-mm-dd”
time 时间型 格式为: “00:00:00”

3. 字符和文本型

(1)字符型

  char(M)        0-255     固定长度的字符串     如:邮编、手机号码、电话号码等
varchar(M) 0-65535 可变长度的字符串 如:新闻标题、家庭地址、毕业院校等。

(2)文本型

  tinytext         0-255         小型文本
Text 0-1670万 中型文本
longtext 0-42亿 大型文本

表的增删改查

  上面主要是对表的结构的创建、修改和删除。下面是对表的记录的增删改查。
  drop和delete的区别:

  • 当你不再需要该表时, 用 drop;
  • 当你仍要保留该表,但要删除所有记录时, 用 truncate;
  • 当你要删除部分记录时(always with a WHERE clause), 用 delete.
  • DROP把表结构都删了,DELETE只是把数据清掉

1. 增加记录

  • 语法格式:INSERT INTO table_name(字段1,字段2,字段3,…) VALUES(值1,值2,值3,…)
  • 语法说明:
    • INSERT INTO是添加数据的SQL命令。
    • table_name要添加的数据表。
    • 表的字段列表,要与值的列表,一一对应。
    • 字段的类型,要与值类型一样。
    • 如果还有没有列出的字段,将用默认值代替。
  • 举例:insert into news(title,content,hits) values(‘标题’ , ‘内容’ , 100)

2. 删除记录

  • 语法:DELETE FROM table_name [WHERE 条件]
  • 说明:
    • WHERE条件:如果省略,将删除所有记录。
  • 举例:
    • delete from news; //删除所有的记录
    • delete from news where id>10; //删除id>10所有记录
    • delete from news where id>=10 and id<20; //删除id>10且id<20的记录
    • delete from news where author = ‘admin’ and id<100; //删除id<100且author = ‘admin’记录

3. 修改记录

  • 语法:UPDATE table_name SET 字段1 = 新值1,字段2=新值2,… [WHERE条件]
  • 说明:
    • 需要更新的字段列出,不需要更新的不用管它。
    • 字段的顺序可以修改。
    • WHERE条件不能省略,如果省略,所有记录都会修改为一样。
  • 举例:
    • update news set title = ‘新标题’,content = ‘新内容’ where id=50;
    • update news set content = ‘新内容’,title = ‘新标题’ where id=50;

4. 查询记录

  • 语法:SELECT 字段列表|* FROM table_name [WHERE条件] [ORDER BY排序][LIMIT限制输出]
  • 参数:
    • 字段字列表:查询某些字段的数据,各字段之间用逗号隔开,字段之间没有顺序。
    • *:表示显示所有列的数据。如:select * from news;
    • where:指查询的条件。
      • 举例:
        • SELECT * FROM news WHERE id<100;
        • SELECT * FROM news WHERE id<100 and hits<100;
        • SELECT * FROM news WHERE id=100 OR hits<50;
    • ORDER BY:字段排序。
      • 语法:ORDER BY 字段 [ASC|DESC]
        • ASC表示“升序”排列(默认),DESC表示降序排列。
          • SELECT * FROM news ORDER BY id DESC; //id降序排列
          • SELECT * FROM news ORDER BY hits; //hits升序排列
    • LIMIT:限制输出
      • 语法:LIMIT startrow,pagesize;
      • 参数:
        • startrow从指定的行数起,开始返回数据。
        • pagesize返回的记录数。
      • 举例:
        • LIMIT 0,10; //从第0行起,返回10条记录
        • LIMIT 10,10; //从第10行起,返回10条记录
        • LIMIT 20,10; //从第20行起,返回10条记录

MySQL的基本操作