MySQL基础操作

1;连接数据库 查看数据的各种方式

MySQL  -hlocalhost -uroot -p123456;

show databases; 列出所有数据库

use 数据库名; 选择数据库;

show full columns from 表名称;    // 列出表中的所有列;

show index from 表格名;  //列出表中索引;

show tables           //列出当前数据库中的所有表名称;

show table status from 数据库名     //数据库的统计信息;



2:修改数据用户密码;

set password=password(‘111111’)//这样就把密码修改成了6个1;


3;创建一个数据库和数据库中表

create database 数据库名字[character set utf8[collate 排序规则字符集]];   //创建数据库

use数据库名;     //连接数据库

create table 表格名                 //创建表

(字段1 字段类型(大小)[character set 字符集[collate排序规则]]),

字段2 字段类型(大小),

........)[default charset=utf8];

===========================

查看数据库字符集

show variables like 'character_set_database';   //查看数据库的字符集;

show create database 数据库名; //查看数据库的字符集;

show variables like 'collation_database';  //查看数据库排序规则字符集;

show create table 表名;   //查看表的编码;

show full columns from 表名;  //查看字段编码;

===================================

修改数据库字符集

alter database 数据库名称 default character set 字符集[collate 排序规则字符集]    //修改数据库字符集和排序规则字符集;

alter table 表格名 convert to character set 字符集[collate 排序规则字符集];  //把表默认的字符集和所有字符集(char.varchar.text)改为新的字符集

alter table 表格名称 default character set 字符集[collate 排序规则字符集];  //只是修改表的默认字符集和排序规则字符集

alter table 表格名称 change 字段名 字段名varchar(255) character set 字符集[collate 排序规则字符集]; //修改字段的字符集和排序规则字符集

===========================

删除

drop database 数据库名;  //删除数据库

drop table 表格名称;   //删除数据库中的表格名,

这里要注意的是;用drop 删除的是整个数据库 或者整个表;如果要删除表中的指定行或者指定列用delete;



数据表的更新和删除

更新修改给定条件数据库表格中的元素

update 表名 set  列1=值1,列2=值2,..... where 列=值;

删除指定值的哪一行数据

delete from 表名 where 列=值;

清空表格

truncate table 表格名;




修改表格

alter table 表格名称 rename 新表格名称;     //修改表格名称

alter table 表格名称 add column 列名称 类型; //给他表格添加一列;

alter table 表格名称 drop column name //删除表格一列

alter table 表名 modify 列名 类型

alter table 表名 change 列名  新列名 类型 ;  //修改表列类型;

alter table 表名 change column 列名 新列名 类型;  //修改表列名;


 


日期和时间类型

date 日期型

time 时间值

year 年

datetime 混合日期和时间值;

timestamp 混合日期和时间值和时间戳



字符串类型

char 定长字符串        0~255

varchar 变长字符串;0~65535

tinyblob 不超过255个字符的二进制字符串  0~255

tinytext 短文本字符串 0~255 个字节

blob 二进制形式的长文本数据   0~65535

text  长文本数据  0~65535;

mediumblob 中等长度的二进制形式的文本数据  0~16777215;

mediumtext  中等长度的文本数据 0~16777215 个字节

longblob 极大文本的二进制数据  0~4294967295

longtext  极大文本数据     0~4294967295;


创建一个数据库

create database mytata character set utf8;

创建一个表

create table mytable(

ID tinyint  not null auto_increment  default character set utf8;

primary key(id)  //把ID设为主键

auto_increment 自动增长


select 查询


select 列1,列2.... from 表格名;

select * from 表格名;



where语句

满足指定标准的记录

=  !=  >  <   >=   <=  

 between    //在某个范围内;

like 搜索某种模式

in   指定针对某个列的多个可能值

and  第一个条件和第二个条件都成立;

or    第一个条件和第二个条件中只要有一个成立

可以把and 和 or 结合起来用括号区分;


order by 对结果集进行排序

order by 对结果集按照一个列或者多个列进排序;

order by 默认按照升序对记录进行排序 使用desc关键字倒序;



limit 指定记录数

select * from 表名 limit 5,10;   //表示从第六行开始向后查找10条记录;

select * from 表名 limit 5;  // 查出来5行

distinct  返回唯一不同的值

select distinct 列1,列2 from 表名;


where 子句

like 搜索列中的指定模式

select * from 表名 where 列(not) like '(%) 值(%)';      

通配符

% 匹配所有字符

_匹配一个字符


正则表达式

(not)regexp  not表示不满足条件的 

规定多个值

(not) in (value1,value2......);

范围之内

between 值1 and 值2;

null 特殊处理

is (not) null;


join 连接

 表示两个或者多个表的行结合起来,基于这些表之间的共同字段

inner join 如果表中有至少一个匹配 则返回行

left join 即使右边表中没有匹配 也从左表返回所有的行;

right join 即使左边表没有匹配,也从右表返回所有的行

using子句  


复制表

创建新表并复制旧表结构

create table newtable like oldtable;

将旧数据表中的数据复制到新数据表中,且结构相同

insert newtable  select * from oldtable;

结构不同

insert newtable (字段1,字段2...) select 字段1,字段2 ... from oldtable

你可能感兴趣的:(MySQL基础操作)