其次,学习数据库的主要功能和使用方法,比如用户相关或者权限相关等等。
我推荐两本书:
一、《MySQL必知必会》 这本书讲的非常全,从基本概念,到查询到插入新建表,用户的管理,都有具体的例子,非常适合没有任何基础的同学来学习Mysql,总之这本书学习的方法就是:1、十分钟了解下数据库的基本概念 2、找到练手的数据库 3、对照着上面的内容去敲。本书里也有大量的内容是讲sql的,可以结合w3c的sql教程一起,有取舍地看。
二、《数据库系统概念》这本书是dba必看的。看完这些并且实践+思考之后,可以算入门了。接下来对于希望深入学习的童鞋我推荐几本书(很多大神都这么推荐),《高性能MySQL(第3版)》、 《MySQL技术内幕(第4版)》,《MySQL技术内幕 InnoDB存储引擎》,《深入理解MySQL》还有Mysql的官网。读完这些东西,再加些丰富的经验,理论上来讲就具备DBA的水平了。十分推荐阅读Planet MySQL上汇总的博客,特别是Percona's MySQL &InnoDB performance and scalability blog但是,正如我开头所言的。
面对问题的时候一定要积极思考!比如:我问你,面对一个并发量比较高的场景,如何配置mysql的连接数?你可能会回答:“哦,就是调高max_connection的数值吧。”那,你有没有思考过调到多少是最合适的呢?为什么这样设置就最合适呢?也许你会回答:“恩我知道,可以看系统之前的max_used_connection的数值,然后来设置。也可以调高back_log的值。”那你有没有思考过,max_connection连接数太高会有什么不好的影响呢?back_log设置的太高有什么不好的地方呢?max_connect的上限其实是取决于mysql能获得的文件描述符的数量,也就是说你就算设置成10000,最后也是没用的,系统会根据机器的情况自动调低。也许你会回答:“恩我知道,设置太高,会有系统开销...”那你有没有思考过,这些开销具体是什么呢?是什么工作导致了需要这些内存开销?也许你还会回答,在连接创建的时候,会立刻为它分配连接缓冲区以及查询缓冲区,这些都会吃内存。那你有没有思考过,占据的资源具体是多少呢?取决于哪些因素呢?好了,我们先结束这个问题。回到知乎的问题上来,其实我说了这么多,就是表达要如何自学mysql。所以的所以,你必须不断思考,才能在工作中面对具体场景的时候,非常淡定地推断:“哦,一定是这里出了问题。应该怎么怎么做。”面对问题,拿出打破砂锅问到底的精神,先思考一番,给出自己的假设,不要着急地去找度娘,谷歌。思考过后,带着你的推断或者答案,大胆地去搜索吧!去看看别人的见解,去看看官方的描述!这才是一个工程师应有的态度。最后我想给出一些有价值的学习资料。可以省去一些时间。-电子书:我认为多看书还是有好处的。有些书值得反复看许多遍,有时候只看一遍无法深刻理解吸收,思考也不够充分
初学。w3c上基本的SQL,老实看个星期,基本就学完了。CREATE DATABASE pic_manager /*创建数据库 pic_manager */
GRANT select,insert,delete,update ON pic_manager.* to neuq IDENTIFIED by '123'/*创建用户 neuq ,密码 123 ;把 pic_manager的所有权限 分配给用户neuq */
use pic_manager /* 切换到pic_manager */
CREATE TABLE admin(user_name VARCHAR(20) primary key,password varchar(20)) /*创建admin表*/
insert into admin(user_name,password) values('admin','admin') /*往 admin 表插入一条数据*/
CREATE TABLE users(user_id int auto_increment primary key,user_name VARCHAR(20),password varchar(20),name varchar(20),sex varchar(6),age varchar(20),tel varchar(30),address varchar(40),email varchar(30))
/*创建 users表*/
CREATE TABLE comments(comment_id int auto_increment primary key,picture_id int,content varchar(200),comment_time DATETIME,user_name VARCHAR(30))
/*创建 comments表*/
CREATE TABLE pictures(picture_id int auto_increment primary key,picture_title varchar(20),picture_name longblob,upload_time DATETIME,user_name VARCHAR(20))
/*创建 pictures表 */
/*上面的字段约束条件 ,自己会看吧!,w3c SQL自己查*/
一、指代不同
1、w3school:是因特网上最大的WEB开发者资源,一直在升级和更新,致力于推广W3C标准技术。
2、w3cschool:一个专业的编程入门学习及技术文档查询应用,提供包括HTML,CSS,Javascript,jQuery,C,PHP,Java,Python,Sql,Mysql等编程语言和开源技术的在线教程及使用手册。
二、内容不同
1、w3school:参考手册涵盖了网站技术的方方面面。其中包括W3C的标准技术:HTML、XHTML、CSS、XML。以及其他的技术,诸如JavaScript、PHP、ASP、SQL等等。
2、w3cschool:和W3School内容基本相同,W3是赢科公司投资的,虽然看似相同,但是实际内容不同。
三、特点不同
1、w3school:任何网站都可以链接到 W3School 的任何页面。如果需要在对少量内容进行引用,请务必在引用该内容的页面添加指向被引用页面的链接。
2、w3cschool:是完全免费的,是非盈利性的,致力于志愿推广 W3C 标准。
参考资料来源:百度百科-W3School
参考资料来源:百度百科-w3cschool
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)