初步了解MySQL 数据库

来源:互联网 发布:黄网络直播 编辑:程序博客网 时间:2024/06/06 07:06

@(笔记)[MarkDown|数据库|我的博客]

8.8

  • 初步了解MySQL 数据库
    • SQL语句的分类
    • MySQL服务的启动停止与卸载
    • MySQL的登录
      • MySQL 参数
      • cmd 登录mysql
        • 登录时选择使用哪个数据库
      • 修改MySQL提示符
        • Mysql提示符
    • 退出MySQL
    • MySQL常用命令
      • 修改密码
    • MySQL语句的规范
    • MySQL数据库的操作
      • 显示所有存在的数据库
      • 创建数据库
      • 删除数据库
      • 使用数据库
  • 数据类型和操作数据表
    • 数据类型
      • 整型
      • 浮点型
      • 日期类型
      • 字符型
    • 数据表操作
      • 创建数据表
      • 参看数据表列表
      • 参看数据表结构
      • 插入记录
      • 更新记录
      • 删除记录
      • 更改表名
      • 修改字段属性
      • 修改默认值
      • 给字段添加主键
      • 删除主键
      • 修改表数据引擎
      • 增加新字段列
      • 数据的备份和恢复
        • 备份
        • 恢复
        • 导出数据库

初步了解MySQL 数据库

enter image description here

  • 表头(header): 每一列的名称;
  • 列(row): 具有相同数据类型的数据的集合;
  • 行(col): 每一行用来描述某个人/物的具体信息;
  • 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
  • 键(key): 表中用来识别某个特定的人\物的方法, 键的值在当前列中具有唯一性

SQL语句的分类

  • DQL 查询语句 select
  • DML 操作语句 insert update delete
  • DDL 定义语句 create alter drop truncate
  • DCL 控制语句 grant revoke
  • 实务控制语句 commit rollback savepoint

MySQL服务的启动、停止与卸载

在 Windows 命令提示符下运行:
启动: net start MySQL
停止: net stop MySQL
卸载: sc delete MySQL

MySQL的登录

MySQL 参数

参数 描述 -D, –fatabase = name 打开指定数据库 –delimiter = name 指定分隔符 -h, –host = name 服务器名字 -p, –password[=name] 密码 -P, –port=# 端口号 –prompt=name 设置提示符 -u, –user=name 用户名 -V, –version 输出版本信息并退出

登录

如果登录本地服务器,则可以不写端口号和IP地址

cmd 登录mysql

mysql -h 主机名 -u 用户名 -p (回车)

登录时选择使用哪个数据库

mysql -D 选择的数据库名 -h 主机名 -u 用户名 -p

  • h : 该命令用于指定客户端所要登录的MySQL主机名, 登录当前机器该参数可以省略;
  • u : 所要登录的用户名;
  • p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项

修改MySQL提示符

  • 连接客户端时通过参数指定

mysql -uroot - p –prompt 提示符

enter image description here

--prompt 后面跟的\h 参数表示服务器名字

  • 连上客户端后通过prompt命令

mysql > prompt 提示符

enter image description here

提示符从原来的loaclhost变成了mysql>
- 或者 \R

mysql > \R 提示符

enter image description here

参看mysql的命令知道:

prompt (\R) Change your mysql prompt.

可以使用\R 代替prompt


我们也可以使用提示符参数来增加提示符信息

Mysql提示符

参数 描述 \D 完整的日期 \d 当前数据库 \h 服务器名称 \u 当前用户

enter image description here

使用\d参数时,必须使用use 数据库名切换到指定数据库
不然会显示为null

enter image description here

退出MySQL

  • mysql > exit
  • mysql > quit
  • mysql > \q

MySQL常用命令

  • 显示当前服务器版本
    • SELECT VERSION();
  • 显示当前日期
    • SELECT NOW();
  • 显示当前用户
    • SELECT USER();
  • 添加管理员账户
    • grant all on *.* to user@localhost identified by "password";
      enter image description here

修改密码

mysqladmin -u root -p password 新密码

执行后提示输入旧密码完成密码修改, 当旧密码为空时直接按回车键确认即可.

MySQL语句的规范

  • 关键字与函数名称全部大写
  • 数据库名称,表名称,字段名称小写
  • SQL语句必须以分号结尾

MySQL也可以全程使用小写
(为了方便查看,本文中全部使用小写命令)

MySQL数据库的操作

显示所有存在的数据库

show databases;

创建数据库

create{database| schema}
[if not exists] db_name –如果不存在db_name这个数据库就创建db_name数据库
[defalut] character set [=] charset_name; –设置编码格式

enter image description here

  • 在登录的时候创建

mysqladmin -u root -p create demo_db

删除数据库

drop {database | schema} [if exists] db_name;

使用数据库

use 数据库名称;

显示当前选择的数据库

select database();

数据类型和操作数据表

数据类型

数据类型指的是列,存储过程参数,表达式和局部变量的数据特征,
他决定了数据的存储格式,代表了不同的信心类型

整型

数据类型 字节 tinyint 1 smallint 2 mediumit 3 int 4 bigint 8

浮点型

数据类型 描述 float[(m,d)] m是数字中位数,d是小数位数 double[(m,d)] 如果省略m和d,根据硬件允许的限制来保存值

日期类型

列类型 存储需求 描述 year 1 默认存储4位数字 time 3 -8385959到8385959 date 3 1000年1月1日到9999年12月31号之间的日期 datetime 8 1000年1月1号0点0分0秒到9999年12月31号59点59分59秒 datestamp 4 时间戳:1970.1.1到2037年12.31

字符型

列类型 描述 char(m) (定长) m个字节,0<=m<=255 varchar(m) (变长) L+1个字节,L<=m且0<=m<=65535 tinytext L+1个字节,L<2的8次方 text L+2个字节,L<2的16次方 mediumtext L+3个字节,L<2的24次方 longtext L+4个字节,L<2的32次方 enum(‘value1’,’value2’,…) 1或2个字节,取决于枚举值的个数(最多65535个值) set(‘value1’,’value2’,…) (集合) 1,2,3,4或8个字节,取决于set成员的数目(最多64个成员)

数据表操作

数据表(表)是数据库中最重要的组成部分之一,起其他对象的基础

表 :在关系型数据库中最基本的数据模型,由行和列组成的一张二维表
行 :记录 记录一个对象的所有的属性
列 :字段 描述了数据的一个特性

创建数据表

create table [if not exists] table_name(    cloumn_name1 data_type,    cloumn_name2 data_type,    ...);

最后一条语句不需要加,;

create table tb1(    username varchar(20),    age tinyint unsigned, --无符号     salary float(8,2) unsigned);

以创建 students 表为例, 表中将存放 学号(id)、姓名(name)、性别(sex)、年龄(age)、联系电话(tel) 这些内容:

create table students(    id int unsigned not null auto_increment primary key,    name char(8) not null,    sex char(4) not null,    age tinyint unsigned not null,    tel char(13) null default '-');

(提示: 1.如果连接远程主机请加上 -h 指令; 2. createtable.sql 文件若不在当前工作目录下需指定文件的完整路径。)

语句解说:

  • create table tablename(columns) 为创建数据库表的命令, 列的名称以及该列的数据类型将在括号内完成;

括号内声明了5列内容, id、name、sex、age、tel为每列的名称, 后面跟的是数据类型描述, 列与列的描述之间用逗号(,)隔开;

以 “id int unsigned not null auto_increment primary key” 行进行介绍:

  • “id” 为列的名称;
  • “int” 指定该列的类型为 int(取值范围为 -8388608到8388607), 在后面我们又用 - “unsigned” 加以修饰, 表示该类型为无符号型, 此时该列的取值范围为 0到16777215;
  • “not null” 说明该列的值不能为空, 必须要填, 如果不指定该属性, 默认可为空;
  • “auto_increment” 需在整数列中使用, 其作用是在插入数据时若该列为 NULL, MySQL将自动产生一个比现存值更大的唯一标识符值。在每张表中仅能有一个这样的值且所在列必须为索引列。
  • “primary key” 表示该列是表的主键, 本列的值必须唯一, MySQL将自动索引该列。
    下面的 char(8) 表示存储的字符长度为8, tinyint的取值范围为 -127到128, default 属性指定当该列值为空时的默认值。

参看数据表列表

show tables [from db_name] [like ‘pattern’ | where expr];

如果直接写show tables 会显示当前所选择的数据库中的所有数据表
如果加上了from,会显示特定数据库中的表
但是当前所在数据库的位置没有改变

参看数据表结构

show columns from tb_name;
或者
describe (desc) tb_name;

插入记录

insert [into] tb_name [(col_name1,col_name2,…)] values(val1,val2,..);

insert into students values    (1,'张三','男',25,'123467890'),    (2,'李四','男',22,'0987654321'),    (3,'王五','男',20,'0984324321'),    (4,'赵六','男',29,'0944654321');

当只需要插入部分数据,或者不按照顺序插入

insert into students (name,sex,age) values(‘田七’,’男’,30);

更新记录

update students set age = 50 where name = ‘张三’;

删除记录

delete from students where id > 1; –删除ID大于1的所有记录

delete from students where id = 10 limit 1 –限制删除掉1条id=10的记录

delete from students; –删除全表记录

drop table tablename1, tablename2, ….; –删除多个表

更改表名

alter table t1 rename t2;

修改字段属性

alter table tablename modify int(10) unsigned auto_increment primary key not null;

修改默认值

alter table tablename alter id default 0;

给字段添加主键

alter table tablename add primary key(id);

删除主键

alter table tablename drop primary key;

或者

drop primary key on tablename;

修改表数据引擎

alter table tablename ENGINE = MyISAM(InnoDB);

增加新字段(列)

alter table tablename add column single char(1);

或者

alter table tablename add field int unsigned not null;

数据的备份和恢复

备份

mysqldump -u root -p demo_db students > C:\Users\CodeA\Desktop\abc.sql

恢复

进入mysql

create database school;
use school;
source school.sql;

导出数据库

mysqldump –databases db1 db2 >db1.db2.sql;

0 0
原创粉丝点击