mysql数据库

目录

  • 一.基本概念
    • 1.数据(Data)
    • 2.表
    • 3.数据库系统
    • 4.数据库管理系统的优点
    • 5.数据库管理系统的基本功能
    • 6.数据库系统的架构
  • 二.关系型数据库和非关系型数据库
    • 1.关系型数据库:
    • 2.关系型数据库和非关系型数据库的区别
    • 3.非关系型数据库
  • 三.安装mariadb
    • PS1:安装MySQL8.0版tar安装方法
    • PS1:YUM安装MySQL8.0版安装方法
  • 四.基本操作
    • 1.设置密码和改密
    • 2.检测数据库是否在线
    • 3.查看支持的字符集
    • 4.查看表
    • 5.使用表
    • 6.创建数据库
    • 7.修改数据库
    • 8.删除数据库 ==(慎用)==
  • 五.多实例应用
    • 1.什么是数据库多实例
    • 2.多实例的好处
    • 3.多实例弊端
    • 4.实际操作
  • 六.安装mycli插件 (补全命令)不建议用
  • 七.数据类型
    • 1.MySQL支持多种内置数据类型
    • 2.选择正确的数据类型对于获得高性能至关重要,三大原则:
    • 3.常用的数据类型:
    • 4.SQL语言分类:
  • 八.实际操作
    • 1.查
      • 1).查看数据库结构
      • 2).查看数据库中包含的表
      • 3).查看表结构(字段)
    • 2.增加
      • 1)增加新的表
      • 2)管理表中的数据
    • 3.查询数据记录
    • 4 修改、更新数据表中的数据记录
    • 5.修改表名和表结构
      • 1)修改表名
      • 2)扩展表结构(增加字段)
      • 3) 修改字段(列)名,添加唯一键
      • 4)删除字段
  • 九.高级操作
    • 1.自动填充
    • 2.数据克隆

mysql数据库_第1张图片

一.基本概念

1.数据(Data)

描述事物的符号记录
包括数字,文字、图形、图像、声音、档案记录等
以“记录”形式按统一的格式进行存储

2.表

将不同的记录组织在一起
用来存储具体数据
数据库
表的集合,是存储数据的仓库
以一定的组织方式存储的相互有关的数据组合
数据库管理系统(DBMS)
是实现对数据库资源有效组织、管理和存取的系统软件

3.数据库系统

是一个人机系统,田便件、U、效伯)牛、uUMo、/I1Ntt -数据库用户组成
用户可以通过DBMS或应用程序操作数据库
DBMS数据库管理系统

  • Database:数据库是数据的汇集,它以一定的组织形式存于存储介质上
  • DBMS:是管理数据库的系统软件,它实现数据库系统的各种功能。是数据库系统的核心
  • DBA:负责数据库的规划、设计、协调、维护和管理等工作
  • 应用程序:指以数据库为基础的应用程序

4.数据库管理系统的优点

  • 相互关联的数据的集合
  • 较少的数据冗余
  • 程序与数据相互独立
  • 保证数据的安全、可靠
  • 最大限度地保证数据的正确性
  • 数据可以并发使用并能同时保证一致性

5.数据库管理系统的基本功能

  • 数据定义
  • 数据处理
  • 数据安全
  • 数据备份

6.数据库系统的架构

  • 单机架构
  • 大型主机/终端架构
  • 主从式架构(C/S)
  • 分布式架构

二.关系型数据库和非关系型数据库

1.关系型数据库:

Mysql(Oracle公司) 、 SQL server(微软) 、access(微软公司office产品)
Oracle 、DB2(IBM公司),sybase(sybase) 等等

2.关系型数据库和非关系型数据库的区别

关系数据库:
关系数据库结构是二维数据库表,二维表当中每个字段(列)用来描述对象的一个属性,
每个记录(行)用来描述一个对象的信息(完整信息),关系数据库写到哪里也就是存储在硬盘当中
读写系统就会受到的IO限制或者瓶颈

其他
关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
缓存加速软件
非关系型数据库(NoSQL):
MongoDB 、 Redis(内存数据库/缓存数据库)K-V键值对、与之类似的Memcache,K-V键值对
redis-memecache对比:
相同点:存储高热数据(在内存中高速运行)
不同点:redis可以做持久化保存,可以存储对象

3.非关系型数据库

严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。
优点:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、
图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。
缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。

三.安装mariadb

[root@localhost ~]# yum install mariadb-server -y
[root@localhost ~]# systemctl start mariadb.service
[root@localhost ~]# mysql

mysql数据库_第2张图片

[root@localhost ~]# mysql_secure_installation 

输入密码后#一路回车

[root@localhost ~]# tee /etc/yum.repos.d/mysql.repo <
> [mysql]
> name=mysql5.7
> baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
> gpgcheck=0
> EOF
[root@localhost ~]# yum -y install mysql-community-server

启动并查看状态

[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# ss -ntap |grep 3306
LISTEN     0      80          :::3306                    :::*                   users:(("mysqld",pid=3475,fd=13))
[root@localhost ~]# mysql -u root -p

可以在

[root@localhost ~]# vim /etc/my.cnf
[mysql]
prompt=(\\u@\\h) [\\d]>\\_
auto-rehash
[root@localhost ~]# systemctl restart mysqld.service 

第一行是可以显示目前哪个数据库
在这里插入图片描述
后一行是自动补全命令,但是必须先打过完整一边命令后,第二次才能补全

PS1:安装MySQL8.0版tar安装方法

可以去官网下载最新版的安装包 本次用的是最新版的8.0.27
mysql官网下载链接:https://dev.mysql.com/downloads/mysql/

[root@localhost ~]# tar -zxvf /root/mysql-8.0.27-el7-x86_64.tar.gz -C /usr/local/
[root@localhost ~]# mv /usr/local/mysql-8.0.27-el7-x86_64 /usr/local/mysql  改名
[root@localhost ~]# cd /usr/local/mysql/                             进入目录
[root@localhost mysql]# ls
bin  docs  include  lib  LICENSE  man  README  share  support-files
[root@localhost mysql]# mkdir /usr/local/mysql/mysqldb          创建数据库数据目录
[root@localhost mysql]# chmod -R 777 /usr/local/mysql                    赋权
[root@localhost mysql]# chmod -R 777 /usr/local/mysql/mysqldb/
[root@localhost mysql]# groupadd mysql                                  加组
[root@localhost mysql]# useradd -r -g mysql -s /bin/false mysql         创建MySQL用户,但该用户不能登录(-s/bin/false参数指定mysql用户仅拥有所有权,而没有登录权限)*/
[root@localhost mysql]# chown -R mysql:mysql ./                         设定文件属主和属组
[root@localhost mysql]# vim /etc/my.cnf
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/mysqldb
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
[root@localhost mysql]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize --console           初始化数据库

mysql数据库_第3张图片

[root@localhost bin]# cd ../support-files
[root@localhost support-files]# chmod -R 777 /usr/local/mysql              重新授权
[root@localhost support-files]# ./mysql.server start                        启动数据库
Starting MySQL.Logging to '/usr/local/mysql/mysqldb/localhost.localdomain.err'.
. SUCCESS! 
[root@localhost support-files]# cd ../bin
[root@localhost support-files]#./mysql -uroot -p刚刚初始化安装时的密码    /*登录mysql*/

登录数据库后改密码

mysq> alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';   /*修改密码为新密码*/

PS1:YUM安装MySQL8.0版安装方法

[root@localhost ~]# wget https://repo.mysql.com/mysql80-community-release-el7.rpm  下载yum源
[root@localhost ~]# yum -y install mysql80-community-release-el7.rpm   安装
[root@localhost ~]# yum -y install mysql-community-server             安装服务器
[root@localhost ~]# vim /etc/my.cnf                             配置文件

在这里插入图片描述

[root@localhost mysql]# mkdir data                     按配置文件建立文件夹
[root@localhost ~]# systemctl start mysqld                           启动服务
[root@localhost ~]# grep "password is generated" /var/log/mysqld.log | awk '{print $NF}'
,&,n1E0i=p_O                                                             找到初始密码
[root@localhost ~]# mysql -uroot -p
Enter password:                                            用初始密码登录
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY ',&,n1E0i=p_O';      先改密码为初始密码登进去
Query OK, 0 rows affected (0.00 sec)           
mysql> set global validate_password.policy=0;                  # 关闭密码复杂性策略
Query OK, 0 rows affected (0.00 sec) 
mysql> set global validate_password.length=1;                    # 设置密码最低长度为1
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'zy44123';       再重设新密码
Query OK, 0 rows affected (0.01 sec)

这是查密码设置规范的

mysql> show global variables like '%validate_password%';

mysql数据库_第4张图片

退出后就能用新密码进入数据库了

四.基本操作

1.设置密码和改密

第一次登录不知道密码
在这里插入图片描述
查看密码

[root@centos7 ~]#cat /var/log/mysqld.log |grep password
[root@localhost yum.repos.d]# mysql -u root -p'+8saq%5+ljzG'
#特殊符号用单引号引起来

表明多线程
mysql数据库_第5张图片
改密码可能会报错

mysql> alter user root@'localhost' identified by 'zy44123';
ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 42. Created with MySQL 50568, now running 50736. Please use mysql_upgrade to fix this error.

需要退出数据库

[root@localhost ~]# mysql_upgrade -u root -p

mysql数据库_第6张图片

mysql> alter user root@'localhost' identified by 'zy44123';
Query OK, 0 rows affected (0.00 sec)

2.检测数据库是否在线

[root@localhost ~]# mysqladmin -uroot -pzy44123  ping
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
mysqld is alive

3.查看支持的字符集

mysql> show charset;

mysql数据库_第7张图片

4.查看表

mysql> show databases;

mysql数据库_第8张图片

5.使用表

mysql> use mysql;

在这里插入图片描述

6.创建数据库

mysql> create database zy;
Query OK, 1 row affected (0.00 sec)
mysql> show create database zy;

mysql数据库_第9张图片

mysql> create database zy2 charset=utf8;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;

mysql数据库_第10张图片

7.修改数据库

mysql> ALTER DATABASE zy character set utf8;
Query OK, 1 row affected (0.00 sec)

8.删除数据库 (慎用)

mysql> drop database zy;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql> show databases;

mysql数据库_第11张图片

五.多实例应用

1.什么是数据库多实例

多实例类似微信双开,端口号类比微信账号,数据库类比聊天窗口,表类比聊天记录
MySQL多实例就是在一台服务器上同时开启多个不同的服务端口(如:3306、3307等),同时运
行多个MySQL服务进程,这些服务进程通过不同的Socket监听不同的服务端口来提供服务。
多实例可能是MySQL的不同版本,也可能是MySQL的同一版本实现

2.多实例的好处

可有效利用服务器资源。当单个服务器资源有剩余时,可以充分利用剩余资源提供更多的服务,且
可以实现资源的逻辑隔离节约服务器资源。例如公司服务器资源紧张,但是数据库又需要各自尽量
独立的提供服务,并且还需要到主从复制等技术,多实例就是最佳选择

3.多实例弊端

存在资源互相抢占的问题。比如:当某个数据库实例并发很高或者SQL查询慢时,整个实例会消耗
大量的CPU、磁盘I/O等资源,导致服务器上面其他的数据库实例在提供服务的质量也会下降,所以
具体的需求要根据自己的实际情况而定。

4.实际操作

[root@localhost ~]# yum -y install mariadb-server                     安装
[root@localhost ~]# mkdir -pv /mysql/{3306,3307,3308}/{data,etc,socket,log,bin,pid}
建立实例文件夹

mysql数据库_第12张图片

[root@localhost ~]# id mysql
uid=27(mysql) gid=27(mysql) groups=27(mysql)
[root@localhost ~]# chown -R mysql.mysql /mysql
[root@localhost ~]# tree -d /mysql/

mysql数据库_第13张图片

[root@localhost ~]#mysql_install_db --user=mysql --datadir=/mysql/3306/data
#生成数据库文件重复三次
[root@localhost ~]#mysql_install_db --user=mysql --datadir=/mysql/3307/data
[root@localhost ~]#mysql_install_db --user=mysql --datadir=/mysql/3308/data
[root@localhost ~]# vim /mysql/3306/etc/my.cnf
[mysqld]
port=3306
datadir=/mysql/3306/data
socket=/mysql/3306/socket/mysql.sock
log-error=/mysql/3306/log/mysql.log
pid-file=/mysql/3306/pid/mysql.pid
[root@localhost ~]# sed 's/3306/3307/' /mysql/3306/etc/my.cnf > /mysql/3307/etc/my.cnf
[root@localhost ~]# sed 's/3306/3308/' /mysql/3306/etc/my.cnf > /mysql/3308/etc/my.cnf
[root@localhost ~]# paste /mysql/3307/etc/my.cnf /mysql/3308/etc/my.cnf

mysql数据库_第14张图片

[root@localhost ~]# vim /mysql/3306/bin/mysqld
#!/bin/bash

port=3306
mysql_user="root"
mysql_pwd=""
cmd_path="/usr/bin"
mysql_basedir="/mysql"
mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"

function_start_mysql()
{
     
    if [ ! -e "$mysql_sock" ];then
      printf "Starting MySQL...\n"
      ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf  &> /dev/null  &
    else
      printf "MySQL is running...\n"
      exit
    fi
}


function_stop_mysql()
{
     
    if [ ! -e "$mysql_sock" ];then
       printf "MySQL is stopped...\n"
       exit
    else
       printf "Stoping MySQL...\n"
       ${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown
   fi
}


function_restart_mysql()
{
     
    printf "Restarting MySQL...\n"
    function_stop_mysql
    sleep 2
    function_start_mysql
}

case $1 in
start)
    function_start_mysql
;;
stop)
    function_stop_mysql
;;
restart)
    function_restart_mysql
;;
*)
    printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
esac
[root@localhost ~]# sed 's/3306/3307/' /mysql/3306/bin/mysqld >/mysql/3307/bin/mysqld
[root@localhost ~]# sed 's/3306/3307/' /mysql/3306/bin/mysqld >/mysql/3308/bin/mysqld

给文件加权限

[root@localhost ~]# chmod +x /mysql/3306/bin/mysqld 
[root@localhost ~]# chmod +x /mysql/3307/bin/mysqld 
[root@localhost ~]# chmod +x /mysql/3308/bin/mysqld 

启动mysql

[root@localhost ~]# /mysql/3306/bin/mysqld start
Starting MySQL...
[root@localhost ~]# /mysql/3307/bin/mysqld start
Starting MySQL...
[root@localhost ~]# /mysql/3308/bin/mysqld start
Starting MySQL...
[root@localhost ~]# ss -natp |grep 330

在这里插入图片描述

[root@localhost ~]# mysql -h127.0.0.1 -P3308

mysql数据库_第15张图片

六.安装mycli插件 (补全命令)不建议用

[root@localhost ~]# yum install -y libffi-devel
[root@localhost ~]# yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

mysql数据库_第16张图片
把软件拖入系统里

[root@localhost opt]# rz -E
[root@localhost opt]# tar zxvf Python-3.7.7_.tgz
[root@localhost opt]# cd Python-3.7.7/
[root@localhost Python-3.7.7]# ./configure --prefix=/usr/local/Python-3.7.7/
[root@localhost Python-3.7.7]# make
[root@localhost Python-3.7.7]# make install
[root@localhost Python-3.7.7]# ln -s  /usr/local/Python-3.7.7/bin/python3.7  /usr/bin/python37
[root@localhost Python-3.7.7]# ln -s /usr/local/Python-3.7.7/bin/pip3.7 /usr/bin/pip37
[root@localhost Python-3.7.7]# pip37 install mycli -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
[root@localhost Python-3.7.7]# ln -s /usr/local/Python-3.7.7/bin/mycli /usr/bin/mycli
[root@localhost Python-3.7.7]# mycli -u root -p 123123

密码要输入你数据库的密码
mysql数据库_第17张图片
mysql数据库_第18张图片

七.数据类型

1.MySQL支持多种内置数据类型

数值类型
日期/时间类型
字符串(字符)类型

2.选择正确的数据类型对于获得高性能至关重要,三大原则:

  1. 更小的通常更好,尽量使用可正确存储数据的最小数据类型
  2. 简单就好,简单数据类型的操作通常需要更少的CPU周期
  3. 尽量避免NULL,包含为NULL的列,对MySQL更难优化

3.常用的数据类型:

int:整型 用于定义整数类型的数据
int(m) 4个字节 范围(-2147483648~2147483647)
float:单精度浮点4字节32位 准确表示到小数点后六位
float(m,d) 单精度浮点型 8位精度(4字节) m总个数,d小数位, 注意: 小数点不占用总个数
double:双精度浮点8字节64位
char:固定长度的字符类型 用于定义字符类型数据。
char(n) 固定长度,最多255个字符,注意不是字节
varchar(n) 可变长度,最多65535个字符
varchar:可变长度的字符类型
text:文本
image:图片
decimal(5,2):5个有效长度数字,小数点后面有2位 指定长度数组
#Char如果存入数据的实际长度比指定长度要小,会补空格至指定长度,
#如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错

4.SQL语言分类:

DDL:数据定义语言,用于创建数据库对象,如库、表、索引等。(create )
DML:数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据(insert drop delete update )
DQL:数据查询语言,用于从数据表中查找符合条件的数据记录(select )
DCL:数据控制语言,用于设置或者更改数据库用户或角色权限(grant )
(数据控制语句,用于控制不通数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别,如COMMIT、ROLLBACK、GRANT、REVOKE)

八.实际操作

1.查

1).查看数据库结构

SHOW DATABASES; #大小写不区分,分号“;”表示结束

mysql> show databases;

mysql数据库_第19张图片

2).查看数据库中包含的表

use 数据库名
选择数据库,切换库类似于cd

mysql> use class15;
Database changed
mysql> show tables;

mysql数据库_第20张图片

3).查看表结构(字段)

格式:describe [数据库名.]表名;
可简写 desc

mysql> desc info;

mysql数据库_第21张图片
也可以加\G,这样就是纵向显示

mysql> desc info\G;

mysql数据库_第22张图片

在未进入任何数据库前查看表结构可以

mysql> desc class15.info;

mysql数据库_第23张图片

2.增加

1)增加新的表

mysql> use class15;
Database changed
mysql> create table info (id int(4) not null PRIMARY KEY,name char(10) not null,age int(3),tel bigint(11));                   因为int最大10位,而电话号码已经11位了,所以要改成bigint
Query OK, 0 rows affected, 3 warnings (0.01 sec)
mysql> show tables;

mysql数据库_第24张图片

mysql> desc info;

mysql数据库_第25张图片

2)管理表中的数据

1.向数据表中插入新的数据记录
insert into 表名(字段1,字段2,字段3) values(字段1的值,字段2的值,字段3的值);

mysql> insert into info (id,name,age,tel) values(1,'zy',24,13812312345);
Query OK, 1 row affected (0.00 sec)
mysql> select * from class15.info;

mysql数据库_第26张图片

mysql> select * from class15.info\G

mysql数据库_第27张图片
第二种方法

mysql> insert into info VALUES(2,'wwd',21,12378456734);
Query OK, 1 row affected (0.01 sec)
mysql> select * from class15.info\G

mysql数据库_第28张图片

3.查询数据记录

查看指定字段字段
格式 select 字段1,字段2 from 表名 [where 条件表达式]

mysql> SELECT * FROM info WHERE id < 3;

只显示id是3以下的
mysql数据库_第29张图片

mysql> select * from info where age=18;                     只招年龄是18岁的

mysql数据库_第30张图片

mysql> select * from info limit 2;                             加上limit选项可以看前几行

mysql数据库_第31张图片

mysql> select * from info limit 1,2;                          看第1行后的2行

mysql数据库_第32张图片

4 修改、更新数据表中的数据记录

update 表名 set 字段名1=修改字段值1 ,字段名2=修改的字段值2 [where 条件表达式]

mysql> update info set age=19 where name='zrc';
Query OK, 1 row affected (0.01 sec)
mysql> select * from info;

mysql数据库_第33张图片
注意一定后面得跟where,指定目标,否则整个一列都被更改了
4 在数据表中删除指定的数据记录
delete from 表名 [where 条件表达式]
删除前一定要确认,而且后面要跟where表达式,否则就是删除数据表了

mysql> delete from info where age=21;
Query OK, 1 row affected (0.00 sec)
mysql> select * from info;

mysql数据库_第34张图片

5.修改表名和表结构

1)修改表名

alter table 旧表名 rename 新表名;

mysql> alter table info rename zy;
Query OK, 0 rows affected (0.00 sec)
mysql> show tables;

mysql数据库_第35张图片

2)扩展表结构(增加字段)

alter table 表名 add 字段 数据类型
default 字段 表示没有设置时会自动匹配

mysql> alter table zy add guojia varchar(50) default 'china';
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> desc class15.zy;

mysql数据库_第36张图片

mysql> select * from zy;

mysql数据库_第37张图片

3) 修改字段(列)名,添加唯一键

alter table 表名 change 旧列名 新列名 数据类型 [unique key];
unique key 唯一键,可以为多个

mysql数据库_第38张图片

mysql> alter table zy change test 性别 char(50) unique key;
Query OK, 4 rows affected (0.02 sec)
Records: 4  Duplicates: 0  Warnings: 0
mysql> select * from zy;

mysql数据库_第39张图片

4)删除字段

alter table 表名 drop 字段名;

mysql> alter table zy drop 性别;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> select * from zy;

mysql数据库_第40张图片

九.高级操作

1.自动填充

#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
#int(4) zerofill:表示若数值不满4位数,则前面用"0"填充,例0001
#auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;
自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且
添加失败也会自动递增一次
#unique key:表示此字段唯一键约束,此字段数据不可以重复:一张表中只能有一个主键,但是一张表中可以有多个唯一键
#not null:表示此字段不允许为NULL

新建一个数据库

mysql> create database zhongbo;
Query OK, 1 row affected (0.01 sec)
mysql> use zhongbo;
Database changed
mysql> create table if not exists info (id int(4) zerofill primary key auto_increment,    name varchar(10) not null,cardid int(18) not null unique key,hobby varchar(50));
Query OK, 0 rows affected, 3 warnings (0.01 sec)
mysql> desc zhongbo.info;

mysql数据库_第41张图片

mysql> insert into info (name,cardid) values('zy','0234');
Query OK, 1 row affected (0.00 sec)
mysql> select * from info;

mysql数据库_第42张图片

mysql> insert into info (name,cardid) values('wwd','00678');
Query OK, 1 row affected (0.00 sec)
mysql> select * from info;

没有添加ID号,但是ID号是自动添加并且会自动增加
mysql数据库_第43张图片

2.数据克隆

格式

create table yyy2 like yyy;    #复制格式,通过LIKE方法,复制yyy表结构生成yyy2表
insert into yyy2 select * from yyy;      #备份内容

例如把info 表复制到info2表

MySQL root@localhost:ky15> create table info2 like info;
Query OK, 0 rows affected
Time: 0.004s
MySQL root@localhost:ky15> insert into info2 select * from info;
Query OK, 2 rows affected
Time: 0.001s
MySQL root@localhost:ky15> select * from info2;

mysql数据库_第44张图片

你可能感兴趣的:(mysql,nginx,运维,apache)