Mysql数据库基础操作

在mysql数据库中开启使用tab键补全功能

  1. 1)修改主配置文件/etc/mysql/my.cnfmysqlmariadb目录有些不同)
  2. vim /etc/mysql/my.cnf
  3. [mysql]
  4. #no-auto-rehash
  5. auto-rehash
  6. 2)重启并登录测试
  7. 3)可以设置临时支持他不键补全
  8. msyql -uroot -p --auto-rehash

使mysql支持简体中文

  1. vim /etc/msyql/my.cnfmysqlmariadb目录有些不同)
  2. [client]
  3. default-character-set=uft8
  4. [mysql]
  5. default-character-set=uft8
  6. service mysqld restart

mysql数据库表和库管理操作

  1. 注意:大部分命令不区分大小写,且有些唯一的命令可以简写
  2. 1)查看数据库结构
  3. 1》查看数据库列表信息
  4. show database
  5. help show
  6. help itemitem在下面所示,来进行更进一步查看帮助
  7. show authors
  8. show {binary | master} logs
  9. show binlog events [in 'log_name'] [from pos] [limit [offset,] row_count]
  10. show character set [like_or_where]
  11. show collation [like_or_where]
  12. show [full] columns from tbl_name [from db_name] [like_or_where]
  13. show contributors
  14. show create database db_name
  15. show create event event_name
  16. show create function func_name
  17. show create procedure proc_name
  18. show create table tbl_name
  19. show create trigger trigger_name
  20. show create view view_name
  21. show databases [like_or_where]
  22. show engine engine_name {status | mutex}
  23. show [storage] engines
  24. show errors [limit [offset,] row_count]
  25. show events
  26. show function code func_name
  27. show function status [like_or_where]
  28. show grants for user
  29. show index from tbl_name [from db_name]
  30. show master status
  31. show open tables [from db_name] [like_or_where]
  32. show plugins
  33. show procedure code proc_name
  34. show procedure status [like_or_where]
  35. show privileges
  36. show [full] processlist
  37. show profile [types] [for query n] [offset n] [limit n]
  38. show profiles
  39. show slave hosts
  40. show slave status
  41. show [global | session] status [like_or_where]
  42. show table status [from db_name] [like_or_where]
  43. show [full] tables [from db_name] [like_or_where]
  44. show triggers [from db_name] [like_or_where]
  45. show [global | session] variables [like_or_where]
  46. show warnings [limit [offset,] row_count]
  47. like_or_where:
  48. LIKE 'pattern'| WHERE expr
  49. 2》查看数据表信息
  50. use 数据库名称;##使用数据库
  51. show tables
  52. help use
  53. user db_name;
  54. use db1;
  55. select count(*) from mytable; # selects from db1.mytable
  56. use db2;
  57. select count(*) from mytable; # selects from db2.mytable
  58. 3》显示数据表的结构(字段)
  59. describe [数据库.]表名
  60. describe mysql.user;
  61. help describe
  62. {DESCRIBE | DESC} tb_name [col_name | wild]
  63. tbl_name:表名
  64. col_name:列名
  65. 2DDL(数据定义语言)语句操作
  66. 1create 创建新库和创建新表
  67. create database 数据库名;
  68. create table 表名(定义字段);
  69. help create
  70. help itemitems在下面所示,来进一步查看帮助
  71. create database
  72. create event
  73. create function
  74. create function udf
  75. create index
  76. create procedure
  77. create server
  78. create table
  79. create tablespace
  80. create trigger
  81. create user
  82. create view
  83. 示例:
  84. MariaDB [mysql]> create database auther;
  85. MariaDB [mysql]> use auther;
  86. MariaDB [auther]> create table users (user_name char(20) not null,user_passwd char(30) default '',primary key (user_name));
  87. MariaDB [auther]> show tables ;
  88. MariaDB [auther]> desc users;
  89. 2drop 删除库和删除表
  90. drop table [数据库名.]表名;
  91. drop database 数据库名;
  92. drop [temporary] table [if exists] tb_name [,tb_name2...];
  93. help drop
  94. help itemitem是下面所示,来进一步查看帮助
  95. drop database
  96. drop event
  97. drop function
  98. drop function udf
  99. drop index
  100. drop procedure
  101. drop server
  102. drop table
  103. drop tablespace
  104. drop trigger
  105. drop user
  106. drop view
  107. 示例:
  108. MariaDB [haha]> drop table haha.users ;
  109. MariaDB [haha]> drop database haha;
  110. 3alter 更改表结构
  111. alter table [数据库名.]表名
  112. help alter
  113. help itemitem是下面所示,来进一步查看帮助
  114. alter database
  115. alter event
  116. alter function
  117. alter logfile group
  118. alter procedure
  119. alter server
  120. alter table
  121. alter tablespace
  122. alter view
  123. 4》复制表
  124. create table tb_name2 select * from tb_name1;
  125. create table tb_name2 select id,user_name from tb_name1;
  126. 5》创建临时表
  127. create temporary table tb_name;
  128. 6》表重命名
  129. alter table tb_name_old to tb_name_new;
  130. rename table tb_nam_old to tb_name_new;
  131. help rename
  132. help itemitem是下面所示,来进一步查看帮助
  133. rename table
  134. rename user
  135. 3DML(数据库操作语言)语句操作
  136. 1insert 插入新数据
  137. insert into 表名(字段1,字段2,....)values([调用函数]'字段1的值',[调用函数]'字段2的值',...);
  138. help insert
  139. insert [low_priority | delayed | high_priority] [ignore][into] tbl_name
  140. [(col_name,...)] {values | value} ({expr | default},...),(...),... [ on duplicate key update col_name=expr [, col_name=expr] ... ]
  141. insert [low_priority | delayed | high_priority] [ignore][into] tbl_name
  142. set col_name={expr | default}, ... [ on duplicate key update col_name=expr [, col_name=expr] ... ]
  143. insert [low_priority | high_priority] [ignore] [into] tbl_name [(col_name,...)]
  144. select ... [ on duplicate key update col_name=expr[, col_name=expr] ... ]
  145. 示例:
  146. MariaDB [auther]> insert into users(user_name,user_passwd) values('shen',password('1234'));
  147. MariaDB [auther]> insert into users values('list',password('1234')); ##字段内容也可以省略
  148. MariaDB [auther]> select * from users ;
  149. +-----------+--------------------------------+
  150. | user_name | user_passwd |
  151. +-----------+--------------------------------+
  152. | list | *A4B6157319038724E3560894F7F93 |
  153. | shen | *A4B6157319038724E3560894F7F93 |
  154. +-----------+--------------------------------+
  155. 2update 更改原有数据
  156. update 表名 set 字段名1=值1[,字段2=值2] where 条件表达式;
  157. help update
  158. single-table syntax:
  159. update [low_priority] [ignore] tbl_name
  160. set col_name1={expr1|default} [, col_name2={expr2|default}] ...
  161. [where where_condition]
  162. [order by ...]
  163. [limit row_count]
  164. multiple-table syntax:
  165. update [low_priority] [ignore] tbl_name
  166. set col_name1={expr1|default} [, col_name2={expr2|default}] ...
  167. [where where_condition]
  168. 示例:
  169. MariaDB [auther]> update auther.users set user_passwd=password('') where user_name='list';
  170. MariaDB [auther]> select * from auther.users;
  171. +-----------+--------------------------------+
  172. | user_name | user_passwd |
  173. +-----------+--------------------------------+
  174. | list | |
  175. | shen | *A4B6157319038724E3560894F7F93 |
  176. +-----------+--------------------------------+
  177. MariaDB [(none)]> update mysql.user set password=password('xm1234') where user='root'; ##修改root的密码
  178. MariaDB [(none)]> flush privileges; ##刷新权限
  179. 3delete 删除不需要的数据
  180. delete from 表名 where 条件表达式;
  181. help delete
  182. single-table syntax:
  183. delete [low_priority] [quick] [ignore]
  184. from tbl_name
  185. [where where_condition]
  186. [order by ...]
  187. [limit row_count]
  188. multiple-table syntax:
  189. delete [low_priority] [quick] [ignore] tbl_name[.*] [, tbl_name[.*]] ...
  190. from table_references
  191. [where where_condition]
  192. delete [low_priority] [quick] [ignore]
  193. from tbl_name[.*] [, tbl_name[.*]] ...
  194. using table_references
  195. [where where_condition]
  196. 示例:
  197. MariaDB [auther]> delete from auther.users where user_name='list';
  198. 4DQL(数据查询语言)语句操作
  199. select 查询语句
  200. select 字段名1,字段名2,.... from 表名 [where 条件表达式];
  201. help select
  202. select
  203. [all | distinct | distinctrow ][high_priority][straight_join][sql_small_result] [sql_big_result] [sql_buffer_result][sql_cache | sql_no_cache] [sql_calc_found_rows]select_expr [, select_expr ...]
  204. [from table_references
  205. [where where_condition]
  206. [group by {col_name | expr | position}[asc | desc], ... [with rollup]][having where_condition]
  207. [order by {col_name | expr | position}[asc | desc], ...]
  208. [limit {[offset,] row_count | row_count offset offset}][procedure procedure_name(argument_list)]
  209. [into outfile 'file_name' [character set charset_name] export_options|into dumpfile 'file_name'|into var_name [, var_name]]
  210. [for update | lock in share mode]]
  211. distinct:数据去重;
  212. sql_cache:显式指定缓存查询语句的结果;
  213. sql_no_cache:显式指定不缓存查询语句的结果;
  214. query_cache_type服务器变量有三个值:
  215. on:启用;
  216. sql_no_cache:不缓存;默认符合缓存条件都缓存;
  217. off:关闭;
  218. demand:按需缓存;
  219. sql_cache:缓存;默认不缓存;
  220. 示例:
  221. MariaDB [auther]> select * from auther.users;
  222. MariaDB [auther]> select user_name from auther.users;
  223. MariaDB [auther]> select * from auther.users where user_name='shen';
  224. 查询执行路径:
  225. 请求-->查询缓存
  226. 请求-->查询缓存-->解析器-->预处理器-->优化器-->查询执行引擎-->存储引擎-->缓存-->响应
  227. select语句的执行流程:
  228. from --> where --> group by --> having --> order by --> select --> limit
  229. 字段可以使用别名
  230. col1 as alias1, col2 as alias2, ... as有时可以省略
  231. 多表查询:
  232. 连接操作:
  233. 交叉连接:笛卡尔乘积;
  234. 内连接:
  235. 等值连接:让表之间的字段以等值的方式建立连接;
  236. 不等值连接:
  237. 自然连接
  238. 自连接
  239. 外连接:
  240. 左外连接:
  241. from tb1 left join tb2 on tb1.col = tb2.col
  242. 右外连接:
  243. from tb1 right join tb2 on tb1.col = tb2.col
  244. 子查询:在查询中嵌套查询;
  245. 用于where子句中的子查询;
  246. (1) 用于比较表达式中的子查询:子查询仅能返回单个值;
  247. (2) 用于in中的子查询:子查询可以返回一个列表值;
  248. (3) 用于exists中的子查询:
  249. 用于from子句中的子查询;
  250. select tb_alias.col1, ... from (select clause) as tb_alias where clause;
  251. 联合查询:将多个查询语句的执行结果相合并;
  252. union
  253. select clause union select cluase
  254. 5)条件控制(非常重要,一般不能没有控制条件)
  255. 1where语句
  256. 指明过滤条件以实现“选择”功能;过滤条件:布尔型表达式;
  257. where where_condition
  258. select * from tb_name where A=b;
  259. 2group by 语句
  260. 根据指定的字段把查询的结果进行“分组”以用于“聚合”运算;
  261. 3order by 语句
  262. 根据指定的字段把查询的结果进行排序,升序asc,降序desc
  263. 4having 语句
  264. 对分组聚合后的结果进行条件过滤
  265. select * from tb_name group by score having count(*)>n;
  266. 5limit 语句
  267. 对输出的结果进行数量限制
  268. [limit {[offset,] row_count | row_count offset offset}]
  269. limit row_count
  270. 6》相关条件控制符
  271. 算术操作符:+, -, *, /, %
  272. 比较操作符:=, <>, !=, <=>, >, >=, <, <=
  273. 区间:between min and max
  274. 列表:in()
  275. 模糊比较:like(),% 为匹配任意,_ 匹配一个字符
  276. 值:is nullis not null
  277. 逻辑操作符:andornot
  278. 7query cache:缓存查询的执行结果;
  279. key:查询语句的hash值;
  280. value:查询语句的执行结果;
  281. 6mysql的函数
  282. 1concat():字符串连接函数
  283. 2》数学函数
  284. avg()、sum()、max()、min()、count();
  285. 3》文本处理函数
  286. trim()、locate()、upper()、lower()、substring();
  287. 4》时间函数
  288. date()、curtime()、day()、year()、now()
  289. 7)示例:
  290. 建立数据库imployee_salary
  291. show databases;
  292. create database imployee_salary
  293. use imployee_salary
  294. create table IT_salary(岗位类别 char(20) not null,姓名 char(20) not null,年龄 int, 员工 ID int not null, 学历 char(6), 薪资 int not null,primary key (员工 ID));
  295. insert into IT_salary(岗位类别,类别,姓名,年龄,员工 ID,学历,年限,薪资) values('网络工程师','wang',27,011,'本科',3,4800);
  296. select * from IT_salary;
  297. 8explain
  298. 分析查询语句的执行路径

其他常用命令

  1. show status :显示广泛的服务器状态信息
  2. status:显示当前服务器状态
  3. show grants:显示授权用户的安全权限
  4. show errors or warnings:显示服务器错误或警告信息
  5. select user() or current_user:显示当前连接用户
  6. select now() or current_timestamp:显示当前时间
  7. select database():显示当前数据库

mysql数据乱码的解决方法

  1. 1mysql数据乱码的可能原因
  2. 服务器系统字符设置问题
  3. 数据表语系设置问题
  4. 客户端连接语系的问题
  5. 2)解决方法
  6. 1》在创建数据库时设定
  7. create database 库名 character set 'utf8' collate 'utf8_general_ci';
  8. 2》在创建表时设定字符集
  9. create table tbl_name(字段 格式) default charset=utf8;
  10. 3》使用set names 设置默认字符集
  11. set names utf8; ##或者charset utf8
  12. 4》永久修改,修改主配置文件在[mysql]字段中加入default_character_set=utf8
  13. vim /etc/my.cnf
  14. [mysql] ##注意,不是[mysqld],否则启动时会报错。
  15. default-character-set=utf8

Mysql数据库基础操作的更多相关文章

  1. MySQL数据库----基础操作

    一.知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理系统:如mysql,是一个软件 数据库:oldboy_stu,相当于文件夹 表:student,scholl,class_list ...

  2. MySQL数据库基础操作语句

    SQL语言主要用于存取数据.查询数据.更新数据和管理关系数据库系统,分为3种类型: 1.DDL语句 数据库定义语言: 数据库.表.视图.索引.存储过程,例如CREATE DROP ALTER 2.DM ...

  3. MySql数据库基础操作——数据库、用户的创建,表的制作、修改等

    MySql 是一款使用便捷.轻量级的数据库.因为他体积小.速度快.安装使用简单.开源等优点,目前是使用最广泛的数据库.目前位于Oracle甲骨文公司旗下.那今天我们就来介绍一下数据库的基本操作.具体介 ...

  4. mysql 数据库基础操作

    一 知识储备 MySQL数据库基本操作知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理系统:如mysql,是一个软件 数据库:oldboy_stu,相当于文件夹 表:student, ...

  5. 10月16日上午MySQL数据库基础操作(创建、删除)

    以前用的是鼠标在界面上手动创建,这样创建会比较麻烦,而且还会经常出问题.在其它电脑上要用的话还需要重复操作.所以要使用程序代码操作,能通过代码的就不用手动操作. 在数据库界面选择要用的数据库,双击打开 ...

  6. 边记边学PHP-(十五)MySQL数据库基础操作2

    四.使用可视化工具创建数据库 尽管使用命令行感觉更像我们程序猿,可是我还是比較喜欢使用workbench来创建数据库. 首先打开workbench , 一个比較友好的界面就打开了,哈哈.我还是比較喜欢 ...

  7. MySQL数据库基础

    MySQL数据库基础 本文的所有操作是基于CMD环境,MySQL通过在命令行中输入SQL语句对数据库进行操作.配置问题可参考<打通MySQL的操作权限>中的内容,该文算是针对前期的环境配置 ...

  8. PHP移动互联网开发笔记(6)——MySQL数据库基础回想

    近期看了一些架构方面的资料.可是发现基础知识都不怎么坚固,接下来的一段时间.我会定期总结基础知识. 一.数据类型   1.整型   数据类型 存储空间 说明 取值范围 TINYINT 1字节 很小的整 ...

  9. php面试专题---15、MySQL数据库基础考察点

    php面试专题---15.MySQL数据库基础考察点 一.总结 一句话总结: 注意:只写精品 1.mysql定义int(3),那么我存1234就错了么? 不是:无影响:只会影响显示字符的个数:可以为整 ...

随机推荐

  1. 将登录等信息保存到session中和退出session

    JShop简介:jshop是一套使用Java语言开发的B2C网店系统,致力于为个人和中小企业提供免费.好用的网店系统. 项目主页:http://git.oschina.net/dinguangx/js ...

  2. RQNOJ273 马棚问题

    题目描述 每天,小明和他的马外出,然后他们一边跑一边玩耍.当他们结束的时候,必须带所有的马返回马棚,小明有K个马棚.他把他的马排成一排然后跟随它走向马棚,因为他们非常疲劳,小明不想让他的马做过多的移动 ...

  3. SQL中distinct的用法(四种示例分析)

    在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只 用它来返回不重复记录的条数,而不是用它来返回不重记录的 ...

  4. Python基础教程笔记——第3章:使用字符串

    字符串是不可修改的,标准序列操作(索引,分片,判断成员资格,求长度,取最大值 最小值)对字符串都是有效的. 格式化字符串,类似于C语言的输出是的感觉. >>> format=&quo ...

  5. 用Google Analytics UTM标注社会化媒体分享流量来源

    随着社会化媒体营销概念近两年的日益盛行,敢于吃螃蟹的营销工作者们展开了一些尝试,发现对社会化营销效果进行综合评估是一大难点,价值难以衡量.主要原因在于它的营销效果中混杂了直接的目标转化.品牌宣传.品牌 ...

  6. RedirectAttributes

    RedirectAttributes是Spring mvc 3.1版本之后出来的一个功能,专门用于重定向之后还能带参数跳转的 他有两种带参的方式: 第一种:  attr.addAttribute(&q ...

  7. HDU 1024 【DP】

    题意: 给n个数将其分成连续的m组,使得这些组的数加和最大,组与组之间可以空数. /* dp[i][j]表示将前j个数分成i个组最大值 状态转移方程是: dp[i][j]=max(dp[i-1][0. ...

  8. Eclipse导入Maven项目出现:Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.2

    错误如下: Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.2 or one of ...

  9. JVM监控工具:jps、jstat、jinfo、jmap、jhat、jstack使用介绍

    转载:http://outofmemory.cn/java/jvm/jvm-tools-jps-jstat-jinfo-jmap-jhat-jstack 一.jps(JVM Process Statu ...

  10. IOS开发 Block的学习

    苹果公司正在大力推广Block块语法的使用,据说Block会迟早取代一般协议代理的使用. Block最大的作用是函数回调,简化代码. 在ios中,将blocks当成对象来处理,它封装了一段代码,这段代 ...