MySQL授权修改表结构_MySQL创建修改表结构

一、数据库的概述

1、什么是数据库

DB,DataBase

数据库:依照某种数据模型进行组织并存放到存储器的数据集合

DBMS,DataBase Management System

数据库管理系统:用来操纵和管理数据库的大型服务软件

DBS,DataBase System

数据系统:即DB+DBMS,指带有数据库并整合了数据库管理软件的计算       机系统

2、E-R数据模型

实体—关系 模型(Entity-Relationship Model)

3、常见的数据库服务软件类型厂商

Oracle Database(商业)Oracle(甲骨文)

MySQL(开源)Oracle(甲骨文)

SQL Server(商业)Microsoft(微软)

Access(商业)Microsoft(微软)

DB2(商业)IBM

SybaseSybase

PostgreSQL(开源)加州大学伯克利分校

跨平台:Oracle Database   DB2  MySQ  PostgreSQL

不跨平台:SQL Server  Access

4、关于MySQL

开源分支MariaDB

5、MySQL的特点及应用

1)主要特点

适用于中小规模,关系型数据库系统

支持Linux/Unix、Windows等多种操作系统

使用C和C++编写,可移植性强

通过API支持Python/Java/Perl/PHP等语言

Mysql数据库服务器  关系型数据库

2)典型应用环境

LAMP平台,与Apache HTTP Server组合

LAMP平台,与Nginx组合

二、构建MySQL系统

[root@localhost ~]# setenforce 0//临时管理

[root@localhost ~]# getenforce

Permissive

[root@localhost ~]# vim /etc/sysconfig/selinux//永久关闭

SELINUX=disable

Chkconfig–- level iptables off

1、RPM方式安装

[root@localhost ~]# tarvxfMySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar

MySQL-shared-5.6.15-1.el6.x86_64.rpm//共享库

MySQL-devel-5.6.15-1.el6.x86_64.rpm//库和头文件

MySQL-embedded-5.6.15-1.el6.x86_64.rpm//嵌入式版本

MySQL-test-5.6.15-1.el6.x86_64.rpm//测试包

MySQL-server-5.6.15-1.el6.x86_64.rpm//服务端程序

MySQL-shared-compat-5.6.15-1.el6.x86_64.rpm/ /兼容包

MySQL-client-5.6.15-1.el6.x86_64.rpm//客户端程序

[root@localhost ~]#yum–y  remove mysql-server mysql  //卸载默认安装

[root@localhost ~]#mv /etc/my.cnf  /etc/my.cnf.old       //移走配置文件

spacer.gif至少安装server、client、share*包

采用U升级安装,可替换冲突文件

推荐将devel也装上,用于支持其他软件

[root@localhost ~]# rpm -Uvh MySQL-shared-*.rpm MySQL-client-5.6.15-1.el6.x86_64.rpm MySQL-server-5.6.15-1.el6.x86_64.rpm MySQL-devel-5.6.15-1.el6.x86_64.rpm

2、更改配置文件

[root@localhost ~]#cp  /usr/share/mysql/my-default.cnf(模板)/etc/my.cnf

[root@localhost ~]#vim  /etc/my.cnf

[mysqld]

.. ..

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

explicit_defaults_for_timestamp=1//启用显示时间戳

.. ..

3、启动mysql数据库服务

[root@localhost ~]# service mysql restart

[root@localhost ~]# chkconfig mysql on

[root@localhost ~]# netstat -anultp |grep mysql

tcp        0      0 :::3306  :::*//默认监听TCP的3306端口

LISTEN      28470/mysqld

*ps  aux  | grep  mysqld

进程名      mysqld

进程所有者   mysql

监听端口号   3306

传输协议     tcp

4、修改root口令

spacer.gif默认的数据库管理账号

root,允许从localhost访问

登录密码在安装时随机生成

[root@localhost ~]# cat /root/.mysql_secret

# The random password set for the root user at Tue Apr 29 12:14:06 2014 (local time):VaAcGHM0//随机生成的管理密码

spacer.gif操作方法:

通过客户端工具mysql连接本服务器

使用SET PASSWORD重设口令

[root@localhost ~]# mysql -u root –p//以root登录,-p验证口令

Enter password://输入随机口令

mysql> set password for root@"localhost"=password("123");

//将密码设置为123

mysql>quit                      //退出mysql>环境

MySQL基本管理

1、登录数据库服务器

默认情况下,只允许使用数据库管理(root),从数据库服务器本机登录。要其从其pc机登录,必须在数据库服务器本机做授权才可以。

2、登录数据库服务器命令的语法格式

Mysql-h ip/主机名-u用户名-p密码 数据库名//登录到某个数据库

/root/.mysql_secret数据库管理员root首次登录数据库服务器使用的密码

3、使用mysql>管理环境

spacer.gif操作指令类型:

MySQL指令:环境切换、看状态、退出等控制

SQL指令:数据库定义/查询/操作/授权语句

spacer.gif基本注意事项:

操作指令不区分大小写(密码、变量值除外)

每条SQL指令以;结束或分隔

不支持Tab键自动补齐

\c可废弃当前编写错的操作指令

4、查看数据库结构

spacer.gif列出当前MySQL服务器上有哪些库

mysql>Show  databases;

information_schema虚拟库存放数据库服务器上已有库和表的信息

在此库存放的数据不占用物理磁盘空间

mysql 授权库(保存用户的授权信息,用户登录数据库服务器,用此库里的信息验证登录用户的权限)

performance_schema 数据库服务器运行时的参数信息

test 公共库   (任何用户登录到数据库服务器上,对此都有完全权限)

*存放数据库服务器上的库和表,是以文件的形式保存在数据库目录下

/var/lib/mysql   数据库目录

spacer.gif使用/切换到指定的库

mysql> USE  数据库名;

spacer.gif列出当前的库内有那些表

mysql>Show  tables;

查看指定表的字段结构

Mysql>DESCRIBE 表名\G;以列表形式展现,否则为表格形式

创建数据库:creat   database  数据库名;

spacer.gif数据库名的规则:

字母 数字 下划线唯一 、字母区分字母大小写、唯一、不能使纯数字、不要使用关键字或特殊字符、

删库:drop  database  数据库名; (如果库里有表,表会一并被删除)

Select  database();//查看当前所在的库

Show tables  显示以创建的库

5、创建表

*表存放在库里(创建表)

Create   table  表名(

字段名  字段类型(宽度) 约束条件

.. ..

)

mysql> create table stu1 (name char(4),level tinyint(3)unsigned);//只保存正数

横着的是记录   竖着的是字段

查看表结构:desc表名;

Desc   库名.表名

三、Mysql 数据类型

1、常见的信息种类(不同的数值类型存储数值的范围不同)

数值类型类型大小范围(有符号)范围(无符号)用途

tinyint1字节-128~1270~255微小整数

smallint2字节-32768~327670~65535小整数

mediumint3字节-223~-223-10~223-1中整数

int4字节-231~-231-10~232-1大整数数

bigint8字节-263~-263-10~264-1极大整数

float4字节单精度浮点数

double8字节双精度浮点数

decimal对decimal(M,D),其中M为有效位数,D为小数位数,M应大于D,占用M+2字节

向表内插入内容:insert  into表名(字段名列表)values(字段值列表);

Insert  into stu1(name,level)values(“swk”,127);

字段名之间使用,号分隔

字段值列表之间是用,,号分隔

字段是字符类型的,值要用”或“”把值扣起来

字段的值与字段类型匹配。是否只保存与字段类型匹配的部分

查看表中的记录 select * from stu1;

整数型

spacer.gif关于整数类型字段:

使用unsigned修饰时,对应的字段只保存正数

数值不够指定宽度时,在左边填空格补位

宽度仅是显示宽度,存数值的大小由类型决定

使用关键字zerofill时,填0代替空格补位

当字段值与类型不匹配时,字段填为0处理

数值超出范围时,仅保存最大/最小值

mysql> create table t1 (id int(5) unsigned);//建表

Query OK, 0 rows affected (0.03 sec)

mysql> desc t1;//查看表结构

+-------+-----------------+------+-----+---------+-------+

| Field | Type            | Null | Key | Default | Extra |

+-------+-----------------+------+-----+---------+-------+

| id    | int(5) unsigned | YES  |     | NULL    |       |

+-------+-----------------+------+-----+---------+-------+

1 row in set (0.00 sec)

浮点型:单精度:定义格式:float(位数总宽度,小数位位数)

双精度:

mysql> create table stu1 (//创建stu1表

-> name char(4),age tinyint(3),xuefeifloat(7,2)

-> );

mysql> desc stu1;

数值类型的宽度时显示宽度,实际能存储的值与该数值类型有关,不指定宽度时默认为11位

mysql> create table t3 ( gz int zerofill,id int(6) zerofill);//zerofill:0补齐,

mysql> desc t3;

mysql> insert into t3 (gz,id)

-> values

-> (10000,1);

mysql> select * from t3;

+------------+--------+

| gz         | id     |

+------------+--------+

|0000010000|000001|

+------------+--------+

1 row in set (0.00 sec)

字符类型

定长char(固定长度)0~255

最大长度255字符

不够指定长度字符时在右边用空格补齐

自动截断超出指定字符数的数据

变长varchar(长度是变化的)0~65535

按数据实际大小分配存储空间

自动截断超出指定字符的数据

日期时间类型

datetime日期时间

占用8个字节

范围:1000-01-01 00:00:00.000000~9999-12-31 23:59:59.999999

timestamp日期时间

占用4个字节

范围:1970-01-01 00:00:00.000000~2038-01-19  03:14:07.999999

year年

占用1个字节

范围:1901~2155

date日期

占用4个字节

范围:0001-01-01~9999-12-31

time时间

占用3个字节

格式:HH:MM:SS

关于日期时间字段

当未给timstamp字段赋值时,自动以当前时间赋值,而datetime字段默认赋值为0

YEAR年份的处理

默认用4位数字表示

当只用2位数字赋值时,00~69视为2000~2069,而70~99视为1970.1999

时间函数:类型用途

now()获取调用此函数时的系统日期时间

sysdate()执行时动态获得系统日期时间

sleep(N)休眠N秒

curdate()获取当前的系统日期

crutime()获取当前的系统时刻

month()获取指定时间中的月份

date()获取指定时间中的日期

time()获取指定时间中的时刻

枚举类型(字段值只能在给定范围选择)

从给定值集合中选择单个值,enum

定义格式:enum(值1,值2,值N);

从给定集合中选择一个或多个值,set

定义格式:set(值1,值2,值N)

Set  (“film”,“book”,“music”)  多选

Enum (“boy”,“girl”,“no”)     单选

Create  table  t6(

Name  varchar(8),likes  set(“film”,”book”,”music”),

Sex enum(“boy”,”girl”) );

2、约束条件

Not  null    不允许输入空值

Null         允许为空

Key          索引类型(是否为主键)

Default        设置默认值,缺省为null,

四、修改表结构

*修改表结构会影响表中的记录

修改表结构时受表中已有记录的限制

在还没有向表中插入记录时修改表结构

Alter  table   数据库名.表名   处理动作:

2添加字段、add

Add  字段名   类型(宽度) 约束条件,

mysql>alter  table  stuinfo

->add  email  varchar(30)  not null,

->add  tel   varchar(11)  not null;

默认将新添加的字段追加到已有字段的下方

Fist  把新添加的字段放在所有字段上方

mysql>alter tablestuinfo

->addstu_num  char(4)  not nullfirst;//添加在所有字段上方

After  把新添加的字段放在指定字段的下方

mysql>alter tablestuinfo

->add homeaddr  varchar(50)  not null  after  age;  //添加到age下方

2删除字段、drop

drop字段名;

mysql>alter table stuinfo

->drop tel,drop email;   //删除tel,email

2修改字段类型、modify

Modify   字段名   类型(宽度)  约束条件;

在修改时,不变的部分原样写出来就可以了

不设置部分,会使用建表时的默认设置

mysql>alter tablestuinfo

->modifyname  varchar(20)  not  null;   //修改类型为20不允许为空

更改字段名、change(字段名在表里具有唯一性)

可以在修改字段名的同时修改字段类型

Change  原子段名  新字段名  类型(宽度)  约束条件;

mysql>alter table stuinfo

->change  stu_num  number  varchar(4)  not null;//将字段名改为number

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值