MySQL相关的一些常识
10年积累的成都网站制作、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有溧阳免费网站建设让你可以放心的选择与我们合作。
本文主要给大家介绍MySQL相关的一些常识,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL相关的一些常识吧。
一、MySQL下载与安装
(一)、可以选择Linux General来下载免编译的tar.gz的包,解压以后,具体操作可根据
(1)、mv mysql-5.1.40-linux-i686-icc-glibc23 /usr/local/mysql
(2)、建立mysql用户: useradd -s /sbin/nologin mysql
(3)、初始化数据库
[root@localhost src]# cd /usr/local/mysql [root@localhost mysql]# mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
(4)、拷贝配置文件
[root@localhost mysql]# cp support-files/my-large.cnf /etc/my.cnf
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld [root@localhost mysql]# chmod 755 /etc/init.d/mysqld (6)、
[root@localhost mysql]# vim /etc/init.d/mysqld
需要修改的地方有 “datadir=/data/mysql” (前面初始化数据库时定义的目录)
(7)、把启动脚本加入系统服务项,并设定开机启动,启动mysql
[root@localhost mysql]# chkconfig --add mysqld [root@localhost mysql]# chkconfig mysqld on [root@localhost mysql]# service mysqld start
如果启动不了,请到 /data/mysql/ 下查看错误日志,这个日志通常是主机名.err. 检查mysql是否启动的命令为:[root@localhost mysql]# ps aux |grep mysqld
(二)、也可以下载rpm包,直接用rpm -ivh filename 来安装
rpm -ivh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
yum install mysql mysql-community-server -y
二、常用操作
flushprivileges ;//修改权限之后,刷新MySQL的系统权限相关表方可生效
(一)Linux下MySQL的备份与还原 hitidea是一个有很多数据表的数据库(Wordpress MU),搜索了一下,发现只要在mysqldump的时候加上–lock-tables=false就可以解决问题。 零、用户管理: 1、新建用户: >CREATEUSER name IDENTIFIED BY 'ssapdrow'; 2、更改密码: >SETPASSWORD FOR name=PASSWORD('fdddfd'); 3、权限管理 >SHOWGRANTS FOR name; //查看name用户权限 >GRANTSELECT ON db_name.* TO name;//给name用户db_name数据库的所有权限 >REVOKESELECT ON db_name.* TO name;//GRANT的反操作,去除权限; 一、数据库操作: 1、查看数据库: >SHOWDATABASES; 2、创建数据库: >CREATEDATABASE db_name;//db_name为数据库名 3、使用数据库: >USEdb_name; 4、删除数据库: >DROPDATABASE db_name; 二、创建表: 1、创建表: >CREATETABLE table_name; >idTINYINT UNSIGNED NOT NULL AUTO_INCREMENT,//id值,无符号、非空、递增——唯一性,可做主键。 >nameVARCHAR(60) NOT NULL >scoreTINYINT UNSIGNED NOT NULL DEFAULT 0,//设置默认列值 >PRIMARYKEY(id) >ENGINE=InnoDB//设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索 >DEFAULTcharset=utf8;//设置默认的编码,防止数据库中文乱码 如果有条件的创建数据表还可以使用 >CREATE TABLE IF NOT EXISTS tb_name(........ 2、复制表: >CREATETABLE tb_name2 SELECT * FROM tb_name; 或者部分复制: >CREATETABLE tb_name2 SELECT id,name FROM tb_name; 3、创建临时表: >CREATETEMPORARY TABLE tb_name(这里和创建普通表一样); 4、查看数据库中可用的表: >SHOWTABLES; 5、查看表的结构: >DESCRIBEtb_name; 也可以使用: >SHOWCOLUMNS in tb_name; //from也可以 6、删除表: >DROP[ TEMPORARY ] TABLE [ IF EXISTS ] tb_name[ ,tb_name2.......]; 实例: >DROPTABLE IF EXISTS tb_name; 7、表重命名: >RENAMETABLE name_old TO name_new; 还可以使用: >ALTERTABLE name_old RENAME name_new; 三、修改表: 1、更改表结构: >ALTERTABLE tb_name ADD[CHANGE,RENAME,DROP] ...要更改的内容... 实例: >ALTERTABLE tb_name ADD COLUMN address varchar(80) NOT NULL; >ALTERTABLE tb_name DROP address; >ALTERTABLE tb_name CHANGE score score SMALLINT(4) NOT NULL; 四、插入数据: 1、插入数据: >INSERTINTO tb_name(id,name,score)VALUES(NULL,'张三',140),(NULL,'张四',178),(NULL,'张五',134); 这里的插入多条数据直接在后边加上逗号,直接写入插入的数据即可;主键id是自增的列,可以不用写。 2、插入检索出来的数据: >INSERTINTO tb_name(name,score) SELECT name,score FROM tb_name2; 五、更新数据: 1、指定更新数据: >UPDATEtb_name SET score=189 WHERE id=2; >UPDATEtablename SET columnName=NewValue [ WHERE condition ] 六、删除数据: 1、删除数据: >DELETEFROM tb_name WHERE id=3; 七、条件控制: 1、WHERE 语句: >SELECT* FROM tb_name WHERE id=3; 2、HAVING 语句: >SELECT* FROM tb_name GROUP BY score HAVING count(*)>2 3、相关条件控制符: =、>、<、<>、IN(1,2,3......)、BETWEEN a AND b、NOT AND、OR Linke()用法中 % 为匹配任意、 _ 匹配一个字符(可以是汉字) ISNULL 空值检测 八、MySQL的正则表达式: 1、Mysql支持REGEXP的正则表达式: >SELECT* FROM tb_name WHERE name REGEXP '^[A-D]' //找出以A-D 为开头的name 2、特殊字符需要转义。 九、MySQL的一些函数: 1、字符串链接——CONCAT() >SELECTCONCAT(name,'=>',score) FROM tb_name 2、数学函数: AVG、SUM、MAX、MIN、COUNT; 3、文本处理函数: TRIM、LOCATE、UPPER、LOWER、SUBSTRING 4、运算符: +、-、*、\ 5、时间函数: DATE()、CURTIME()、DAY()、YEAR()、NOW()..... 十、分组查询: 1、分组查询可以按照指定的列进行分组: >SELECTCOUNT(*) FROM tb_name GROUP BY score HAVING COUNT(*)>1; 2、条件使用Having; 3、ORDER BY 排序: ORDERBY DESC|ASC=>按数据的降序和升序排列 十一、UNION规则——可以执行两个语句(可以去除重复行) 十二、全文检索——MATCH和AGAINST 1、SELECTMATCH(note_text)AGAINST('PICASO') FROM tb_name; 2、InnoDB引擎不支持全文检索,MyISAM可以; 十三、视图 1、创建视图 >CREATEVIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~; 2、视图的特殊作用: a、简化表之间的联结(把联结写在select中); b、重新格式化输出检索的数据(TRIM,CONCAT等函数); c、过滤不想要的数据(select部分) d、使用视图计算字段值,如汇总这样的值。 十四、触发器: 触发器是指在进行某项指定操作时,触发触发器内指定的操作; 1、支持触发器的语句有DELETE、INSERT、UPDATE,其他均不支持 2、创建触发器: >CREATETRIGGER trig AFTER INSERT ON ORDERS FOR EACH ROW SELECT NEW.orser_name; >INSERT语句,触发语句,返回一个值 3、删除触发器 >DROPTRIGGER trig; 三、MySQL拷贝表的几种方式 CREATE TABLE IF NOT EXISTS `admin` ( `id` int(6) unsigned NOT NULL auto_increment, `username` varchar(50) NOT NULL default '', `password` varchar(100) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; 1. 下面这个语句会拷贝表结构到新表newadmin中。 (不会拷贝表中的数据) CREATE TABLE newadmin LIKE admin 2. 下面这个语句会拷贝数据到新表中。 注意:这个语句其实只是把select语句的结果建一个表。所以newadmin这个表不会有主键,索引。 CREATE TABLE newadmin AS ( SELECT * FROM admin ) 3. 如果你要真正的复制一个表。可以用下面的语句。 CREATE TABLE newadmin LIKE admin; INSERT INTO newadmin SELECT * FROM admin; 4. 我们可以操作不同的数据库。 CREATE TABLE newadmin LIKE shop.admin; CREATE TABLE newshop.newadmin LIKE shop.admin; 5. 我们也可以拷贝一个表中其中的一些字段。 CREATE TABLE newadmin AS ( SELECT username, password FROM admin ) 6. 我们也可以讲新建的表的字段改名。 CREATE TABLE newadmin AS ( SELECT id, username AS uname, password AS pass FROM admin ) 7. 我们也可以拷贝一部分数据。 CREATE TABLE newadmin AS ( SELECT * FROM admin WHERE LEFT(username,1) = 's' ) 8. 我们也可以在创建表的同时定义表中的字段信息。 CREATE TABLE newadmin ( id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ) AS ( SELECT * FROM admin ) 看完以上关于MySQL相关的一些常识,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。
1. 备份
[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)
[root@localhost mysql]# mysqldump -u root -p voice>voice.sql,输入密码即可。
2. 还原
法一:
[root@localhost ~]# mysql -u root -p 回车,输入密码,进入MySQL的控制台"mysql>",同1.2还原。
法二:
[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)
[root@localhost mysql]# mysql -u root -p voicemysqldump: Got error: 1016 when usingLOCK TABLES
网站题目:MySQL相关的一些常识
文章出自:http://scyanting.com/article/iipjco.html