mysql数据库的一些基本操作(1)

查看当前登陆的用户

mysql> select user();

重置数据库管理员密码

SET  PASSWORD  FOR “root”@‘localhost’=PASSWORD(‘123456’);

mysql> set password for [email protected]=password(‘123456‘);重置用户密码

查看当前所在库

mysql> select database();

| database() |

| NULL       |

查看所有库

mysql> show databases;

| Database           |

默认库

| information_schema | 存储数据库服务器上已有的库和表的信息

| mysql             | 授权库

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

| test               |公共库,任何能登陆到服务器的用户都对此库有操作权限

Create既可以建库又可以建表

Create  database 数据库名;

mysql> create database student;

Query OK, 1 row affected (0.02 sec)

创建数据库的规则:

1、 数据库名具有唯一性

2、 数据库名区分大小写

3、 命名可以使用字母数字下划线

4、 不能纯数字

5、 不能使用特殊符号。

6、 不能用关键字

Use 数据库名,切换数据库

mysql> use student

Database changed

存放在数据库的库和表都是以文件的形式存放在数据库目录下的。

查看所有表

mysql> show tables;

\c中止一条sql语句

删除一个库

mysql> drop database wqe;

建表

Create  table 表名(

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

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

。。。

创建一个表

mysql> create table stu_tab(age int);

Query OK, 0 rows affected (0.21 sec)

查看表结构

mysql> desc stu_tab;

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

| age   | int(11) | YES  |     | NULL    |       |

表中插入信息记录

mysql> insert into stu_tab(age)values(19);

Query OK, 1 row affected (0.04 sec)

查看表中所有信息

mysql> select from stu_tab;

| age  |

|   19 |

Mysql数据类型:

tinyint  微小整数占一个字节默认有符号类型后加unsigned表示无符号的

smallint 小整数:占2个字节。

int      大整数:占4个字节

float(M,N)单精度 M表示数字的总位数,N表示小数位的位数。

double 双精度

char定长

varchar变长

year   1个字节1901~2155,默认4位数字表示,当只用2  位数字赋值时,01~69视为2000~2069,而70~99视为1970~1999。00视为0000.

date   4个字节0001-01-01 ~ 9999-12-31

time   3个字节HH:MM:SS

datetime  8个字节1000-01-01 00:00:00.000000~9999-12-31 00:00:00.000000

timestamp  4个字节 1970-01-01 00:00:00.000000~2038-01-39 03:14:07.999999

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

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

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

sleep(N)     休眠N秒

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

curtime()    获取当前的系统时间

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

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

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

set(值1,值2,值3.。。) 多选

enum(值1,值2.。。)   单选

例:

create table stu_tab1(
    name char(3) not null,
    age int(3) not null default 25,
    class char(10) not null default 1312,
    sex enum("boy","girl") not null default "boy",
    love set("book","film","football","game"),
    startday date not null,
    address char(10) not null default "beijing",
    telephone char( 11) not null
    );

修改表结构

操作:添加新字段 add

格式:add 字段名  类型(宽度) 约束条件;

添加多个字段处理动作用逗号隔开。

first指定添加字段到已有字段的最前面,不指定默认追加到已有     字段名末尾。

after 指定添加字段到指定已有字段的下方。

修改字段名 (类型约束条件等)change

格式:change 源字段名 新字段名 类型(宽度) 约束条件

修改字段类型约束条件等 modify

格式:modify 字段名 类型(宽度) 约束条件;

删除已有字段drop

格式:drop 字段名;

命令格式:alter table 表名 处理动作;多个动作之间用逗号间隔。

例:

alter table stu_tab1 add stu_num varchar(4) not null first,add loves set(‘book‘,‘film‘,‘music‘,‘footbal‘) not null default ‘film,music‘ after name;
alter table stu_tab1 modify age tinyint(3) unsigned not null default 22;
alter table stu_tab1 add qq varchar(11),add mail varchar(50);
alter table stu_tab1 modify stu_num char(4) nut null;
alter table stu_tab1 modify stu_num char(4) not null;
alter table stu_tab1 drop sex,drop love;
alter table stu_tab1 add sex enum(‘m‘,‘w‘,‘x‘) not null default ‘m‘;
alter table stu_tab1 modify sex enum(‘m‘,‘w‘,‘x‘) not null default ‘m‘ after age;
alter table stu_tab1 change stu_num stu_id char(4) not null;  
alter table stu_tab1 add birthday date not null after sex,add startday year not null after birthday,add xf float(6,2) not null after mail;
delete from stu_tab1

复制表和表结构

复制表

create  table  表名  sql查询语句;

create  table  表名  select  *  from  被复制表名;复制时将表和内容全部复制。

复制表结构。

create table 表名 select  *  from  被复制表名 where 不存在的条件 (例如 1=2)。

复制表和表结构的时候,原表的key字段属性不会被复制到新表。

修改表名

alter  table  原表名  rename  新表名;

表中的记录不会受影响。

mysql支持的索引类型:

INDEX:普通索引(index)一个表中可以有多个INDEX字段对应的字段值允许重复  把经常做查询条件的字段设置为INDEX字段 INDEX字段的KEY标志为MUL

UNIQUE:唯一索引(unique)一个表中可以有多个unique字段对应的字段值不允许重复 unique字段的key标志位uni  unique字段修改为不允许为NULL时,则此字段限制与主键相同

FULLTEXT:全文索引(fulltext)

PRIMARY KEY:主键(primary key)一个表中只能有一个PRIMARY KEY字段 主键字段值不允许冲去,且不允许为空 如果有多个字段都作为PRIMARY KEY,称为复合主键,必须在建表时一起创建  主键字段的KEY标志是PRI  通常与AUTO_INCREMENT连用 用主键字段作为操作的条件,能够唯一定位到一条记录。通常把记录的编号设为主键。

FOREIGN  KEY:外键(foreign  key)作用:让当前表里指定字段的值参考另外一个表里字段的值 表的存储引擎要是innodb,只有innodb支持外键 表中外键字段的类型要与参考表的字段类型一致 外键字段要是索引类型的一种 一个表里只能存在一个外键

例:

index(字段名1,字段名2),  //建表时设置为INDEX字段,添加在最后。
show  indexfrom   库名.表名;//查看表中的索引详细信息
index_type                   //索引的算法
drop  index  索引名  on  表名;
create  index  索引名  on  表名(字段名);
unique(字段名)
update更新表记录
update  表名  set  字段名=‘字段值’;
create unique index 索引名 on 表名(字段名);
id  int(2)  auto_increment,  //auto_increment 自动增长,类型必须为数值型才可以用。必须是主键。
alter  table 表名  drop  primary  key;//删除主键,删除主键之前必须删除auto_increment。
primary  key(字段名)
也可以直接写在字段类型后面 primary key。
alter  table 表名 add  primary  key(id);//表存在之后在表中创建主键。
复合主键:只要复合主键字段的值不同时重复就可以。
创建复合主键
create  table  ser_tab(
ip  varchar(10)  not  null,
port  varchar(10)  not  null,
primary  key(ip,port)
);
建外键的语法格式
foreign  key(字段名)   references  表名(字段名) 
A表参照B表,前边为A表中的字段名,后为B表的表名字段名。
on  update   cascade 同步更新
on  delete    cascade  同步删除
当前表为从表,被参考的表为主表。
删除外键
alter  table  表名  drop   foreign  key  外键名;
外键名称查看建表过程查看到。 
alter table stu_tab1 add id int(3) primary key auto_increment  first;
create index name on stu_tab1(name,sex);
create unique index stu_id on stu_tab1(stu_id,telephone,qq);

查看当前服务器可以使用的存储引擎.

mysql> show engines;

| Engine                  | Support | Comment                           | Transactions | XA   | Savepoints |

| PERFORMANCE_SCHEMA   | YES     | Performance Schema                 | NO        | NO   | NO       |

| CSV                     | YES     | CSV storage engine                   | NO        | NO   | NO       |

建表的时候指定存储引擎

create  table   表名(字段列表)engine=存储引擎名;

查看表的创建过程

show  create  table  表名

修改表的存储引擎

alter  table   表名 engine=存储引擎名

查看当前的锁状态

show  status   like ‘table_lock%’;   %通配符

时间: 2024-10-19 07:05:22

mysql数据库的一些基本操作(1)的相关文章

【初学菜鸟作-MySQL数据库表的基本操作与权限管理】

表基本操作练习 1 复制用户信息表user的所有记录到userdb表里. mysql> create table userdb select * fromuser; 2 查看userdb表的表结构 mysql> desc userdb; 3 删除userdb表的所有记录 mysql> delete from userdb 4 把name字段设置为index字段 mysql> create index name on userdb(name) 5 添加编号字段id  在所有字段上方,

mysql数据库表的基本操作sql语句总结

1,命令行登录命令 mysql -h localhost -u root -p C:\Users\lenovo>mysql -u root -p Enter password: ***** Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.5.28 MySQL Community Server (GPL) Copyright (c) 2

mysql数据库的一些基本操作

下面列出一些做项目时常用到的一些mysql操作. 1.对数据库的操作 查看所有的数据库:show databases; 新建一个数据库:create database database_name; 此时再去查看数据库,就可以看到多出了一个school库 要对数据库进行操作时,你就得使用这个:use databases_name; 删除一个数据库:drop database school; 2.对数据表的操作 但首先要选择一个数据库,即用到上面说的use database_name; 新增一个数据

mysql数据库安装和基本操作

一键安装脚本: cat mysql_install.sh #!/bin.bash groupadd mysql useradd -s /sbin/nologin -g mysql -M mysql cd /usr/local/ wget http://mysql.com//Downloads/MySQL-5.6/mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz tar -zxvf mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz

mysql数据库表的基本操作

上节我们我们学习了对库的操作,我们现在已经知道库中还有一个表,类似于我们的excel表,今天我们就来学习下表的操作!首先我们登录数据库 我们现在在乐乐库下面了,现在我们开始创建一个表 创建一个表学生表: mysql> create table student( -> name CHAR(20) NOT NULL, -> age TINYINT UNSIGNED, -> gender CHAR(1) NOT NULL -> ); 查看创建结果 mysql> show ta

mysql数据库的一些基本操作(2)

数据的导入导出 数据的导入:把文件的内容保存到数据的表里 文件按一定格式存放到文件里,按照文件的格式把文件导到表里. 表的结构必须与数据文件的格式完全一样. 根据源数据内容创建表结构 数据库管理员登陆的状态时才能导入数据 数据导入命令格式 load  data  infile  '文件名'  into  table  表名 fields  terminated   by  '列分隔符' lines   terminated   by  '\n' 例: create table user_tab(

MySQL数据库的定时自动备份

昨天做了MySQL数据库的备份基本操作的实验,今天试一下MySQL数据库的定时自动备份. 大概思路就是,首先为备份文件单独创建一个目录,然后再目录下创建Shell脚本里写上执行数据库备份的命令,并且给这个Shell脚本添加可执行的权限,最后给这个Shell脚本添加到crond计划任务,让它每天定时执行. 1.首先进入home目录,创建一个mysqlBackup的目录,然后进入这个目录 2.创建一个.sh后缀的文件, 3.编辑Shell脚本,备份所有数据库到/home/mysqlBackup目录下

mysql数据库 (二) mysql数据库的基本操作

上一次安装好mysql数据库以后并没有登录操作,这次来简单介绍下mysql的基本操作 一.访问mysql数据库(经过安装后的初始化过程,mysql数据库的默认管理员用户名为:"root",密码为空:注意此root并非是linux系统管理员的root账号) 1.登录mysql 未设置密码时,mysql后加"-u"指定用户就可以了 如果root设置了密码,还需要在用户名后面加"-p"选项指定密码 2.执行mysql操作语句 注意:每一条mysql语句

Linux下MYSQL数据库的基本操作

建立数据库: mysql> create database test; //建立一个名为"test"的数据库 建立数据库表: mysql> create table test -> (name char(16) not null, -> passwd char(16) ->); //建立一个名为"test"的表,里面有两个字段,一个字段名为"name",类型为char,大小为16,非空:另一个字段名为"pa