mysql 常用总结笔记

一.基础操作篇

创建数据库 create database 数据库名

创建数据表 create table 表名(字段 字段类型);

显示数据库  show databases

显示数据表 show tables

使用数据库 use 库名

删除数据库 drop database 库名

删除数据表 drop table 表名

删除数据表纪录 delete from 表名 

删除数据表指定纪录 delete from 表名 where 字段名 = 值

查询数据表纪录 select * from 表名

查询数据表指定纪录 select * from 表名 where 字段名 = 值

更新数据表纪录 update 表名 set 字段名 = 值

更新数据表指定纪录 update 表明 set 字段名 = 值 where 字段名 = 值

增加数据 insert into 表名 values(字段值)

二.基础配置篇

对于字符集的支持细化到四个层次:服务器(server),数据库(database),数据表(table)和连接(connection)。

在my.ini文件中找到[client]和[mysqld]字段,在下面均加上default-character-set=utf8,保存并关闭

  • [mysql]
  • default-character-set=utf8
  • [mysqld]
  • character-set-server=utf8

三.基础内置函数

显示mysql当前版本 select version()

显示当前时间  select now()

显示年月日 :

SELECT DAYOFMONTH(CURRENT_DATE);

SELECT YEAR(CURRENT_DATE); 

SELECT MONTH(CURRENT_DATE);  

显示字符串 SELECT "welecome to my blog!"; 

当计算器用  select ((4 * 4) / 10 ) + 25; 

串接字符串  select CONCAT(f_name, " ", l_name)   AS Name  from employee_data  where title = 'Marketing Executive'; 

四.mysql进阶

增加字段 ALTER TABLE table_name ADD field_name field_type;

加索引  alter table 表名 add index 索引名 (字段名1[,字段名2 …]);

加主关键字的索引 alter table 表名 add primary key (字段名);

加唯一限制条件的索引 alter table 表名 add unique 索引名 (字段名);

删除某个索引 alter table 表名 drop index 索引名;

修改原字段名称及类型 ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;

删除字段 ALTER TABLE table_name DROP field_name;

修改表名 rename table 原表名 to 新表名

五.mysql高级

导出整个数据库  mysqldump -u 用户名 -p 数据库名 > 导出的文件名

导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

导出一个数据库结构  mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql

带语言参数导出 mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql

六.mysql小窍门

 蠕虫复制数据语法:insert into 表名字[字段列表] select 字段列表/* from 数据表名;

   更新数据 高级语法:update 表名 set 字段名 = 值 [where条件] [limit 更新数量];

   删除数据 高级语法:delete 表名 set 字段名 = 值 [where条件] [limit 删除数量];

   Truncate用法      truncate 表名字;   使表的自增长重新开始计算

   查询语句   完整语法:select [select选项] 字段列表 [字段别名] /* from 数据源 [where条件子句] [group by子句] [haviing子       句] [order by子句] [limit子句];

   数据源    select * from student,student2;   多表数据源会形成“笛卡儿积”,从一张表中取出一条记录以后,再去另外一张表       中匹配所有记录,而且全部保留(记录数和字段),笛卡儿积其实没什么用,应该尽量避免使用。

   子查询  语法: select * from (select * from 表名字) as 别名(别名不能省);

                       select * from (select * from student) as stu;

   Having子句 与where子句一样,是进行条件判断用的。

   所有班级大于2的人数:select c_id,count(*) from student2 group by c_id having count(*) > 2;

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

注:having能够识别字段别名,where 不能(where是从磁盘中取数据,而磁盘中的数据没有别名,只可能是字段名,别名是字段进入到内存以后才会产生的)   

七.mysql导入文件

命令导入    mysql -u用户名 -p密码 < 要导入的数据库数据(runoob.sql)

source 命令导入   source /home/abc/abc.sql

使用 LOAD DATA 导入数据  LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;

使用 mysqlimport 导入数据  mysqlimport -u root -p --local database_name dump.txt

mysqlimport的常用选项介绍

选项 功能
-d or --delete 新数据导入数据表中之前删除数据数据表中的所有信息
-f or --force 不管是否遇到错误,mysqlimport将强制继续插入数据
-i or --ignore mysqlimport跳过或者忽略那些有相同唯一 关键字的行, 导入文件中的数据将被忽略。
-l or -lock-tables 数据被插入之前锁住表,这样就防止了, 你在更新数据库时,用户的查询和更新受到影响。
-r or -replace 这个选项与-i选项的作用相反;此选项将替代 表中有相同唯一关键字的记录。
--fields-enclosed- by= char 指定文本文件中数据的记录时以什么括起的, 很多情况下 数据以双引号括起。 默认的情况下数据是没有被字符括起的。
--fields-terminated- by=char 指定各个数据的值之间的分隔符,在句号分隔的文件中, 分隔符是句号。您可以用此选项指定数据之间的分隔符。 默认的分隔符是跳格符(Tab)
--lines-terminated- by=str 此选项指定文本文件中行与行之间数据的分隔字符串 或者字符。 默认的情况下mysqlimport以newline为行分隔符。 您可以选择用一个字符串来替代一个单个的字符: 一个新行或者一个回车。

你可能感兴趣的:(x)