最近的几回面试中,都被问有关数据库的知识,不得不认可数据库是个人硬伤(谁让本身当初没好好学),因此最近在恶补数据库方面的知识(从三月中旬到如今,面过的公司挺多的,关于面试的状况,后期抽时间上传的,但愿昨天CVTE的hr面顺利经过),好了,废话很少说,分享下关于数据库学习的笔记,但愿对你们有所帮助。html
rpm -qi mysql-server service mysqld start(stop、restart)--->启动以后才可使用mysql数据库 chkconfig mysqld on(使mysqld服务所系统启动而启动) -------------------------------------------登陆方式----------------------------------------------- mysql -u helen -p(回车后输入密码) mysql -h 127.0.0.1 -u helen -p mysql -h localhost -u helen -p ---------------------------------------------相关文件-------------------------------------------------- 配置文件:/etc/my.cnf 数据文件:/var/lib/mysql/ 日志文件:/var/log/mysqld.log 默认端口:3306 TCP协议 SQL语句的分类 一、DDL(data definition language) :create drop alter rename (操做数据库、表) 二、DML(data munipulation language) : select insert update delete(操做数据) 三、DCL(data control language) : grant revoke(权限) 四、TCL(transaction language) :commit savepoint rollback(事务) -------------------------------------------常见操做----------------------------------------------------------- select version(); //显示版本 select current_date; //显示当前时间 show databases; //显示当前有哪些数据 create database lcdb; //建立一个数据库 drop databses lcdb; //删除一个数据库 use lcdb; //选择使用的数据库 CREATE DATABASE linux_cast; USE linux_cast CREATE TABLE lc_course( id int, course_name varchar(50), course_length int, teacher varchar(10), category varchar(7) ); //对表重命名 ALTER TABLE lc_course RENAME course; //在表中增长一列 ALTER TABLE lc_course AND link varchar(100); //在表中删除一列 ALTER TABLE lc_course DROP COLUMN link; //修改表中某一列的数据类型 ALTER TABLE lc_course MODIFY course_name varchar(2000); //修改某一列的名称 ALTER TABLE lc_course CHANGE lecture teacher varchar(100); //删除重复项 SELECT DISTINCT lecture FROM course; //按照指定列进行排序输出 SELECT * FROM course ORDER BY course_length;(默认按照升序进行排列) SELECT * FROM course ORDER BY course_length DESC;(按照降序) //按照条件进行查询 SELECT * FROM course WHERE lecture="nash_su" AND category="adv"; SELECT * FROM course WHERE lecture="nash_su" OR category="adv" --------------------------------------------用户管理-------------------------------------------- //增长一个用户 CREATE USER 用户名 IDENTIFIED BY '密码';(默认没有权限,没法登入---------须要进行权限方面的设置) //删除一个用户 DROP USER 用户名; //修改用户名 RENAME USER 原用户名 TO 新用户名 //修改当前用户的密码 SET PASSWORD=PASSWORD('新密码'); -------->密码用单引号括起来 //修改指定用户的密码 SET PASSWORD FOR 用户名 PASSWORD=PASSWORD('新密码'); ---------------------------------------------权限管理-------------------------------------------- 权限级别: 一、全局范围 二、数据库级 三、表级 四、列级 五、子程序级 //用户名、主机、密码都用单引号括起来 GRANT ALL PRIVILEGES ON *.* TO '用户名'@'主机' IDENTIFIED BY '密码' 哪些权限 哪一个级别 主机的限制 GRANT ALL PRIVILEGES ON *.* TO 'nash_su'@'%' IDENTIFIED BY 'linuxcast' *.*:全部数据库下的全部表 --------- linux_cast.* :赋予针对特定数据库linux_cast的权限 % :全部主机 -----------------------------------------------数据库备份/恢复------------------------------------------ //备份 mysqldump -u 用户名 -p 数据库名 > 备份的文件名.sql mysqldump -u helen -p lc_course > lc_course_bk.sql(回车以后输入密码) //恢复 mysql -u helen -p 数据库名 < 备份的文件名.sql(回车后输入密码) mysql -u helen -p lc_course < lc_course_bk.sql参考教学视频链接 点击打开连接