Centos6.8下的MySQL安装方法:
mysql -uroot -p //以root用户验证密码的方式登陆(-p表示password)mysql -h [ip] -uroot -pquit
MySQL配置文件保存的目录在/etc/my.cnf,实际上我们可以在my.cnf这个配置文件中修改MySQL的默认保存位置。当新建一个数据库文件,其数据保存在/var/lib/mysql/目录下,比如一些数据库信息,表信息等等。MySQL的日志文件在:/var/log/mysqld.log下。MySQL支持网络服务,默认为TCP服务,绑定的默认端口为3306,可以通过端口连接到MySQL服务。
SQL语句分类:
1) Data Definition Language(DDL)
CREATE-在数据库中创建对象
ALTER-修改数据库结构
DROP-删除对象
RENAME-重命名对象//错误2) Data Manipulation Language(DML)
SELECT-从数据库中获取数据
INSERT-向一个表中插入数据
UPDATE-更新一个表中的已有数据
DELETE-删除表中数据3) Data Control Language(DCL)
GRANT-赋予一个用户对数据库或数据表等的指定权限
REVOKE-删除一个用户对数据库或数据表等的指定权限4) Transacion Control(TCL)
COMMIT-保存数据操作
SAYEPOINT-为方便rollback标记一个事务点
ROLLBACK-从最后一次COMMIT中恢复到提交前状态
初识SQL语句:
SHOW DATAbaseS;//查看数据库SHOW TABLES;//查看表SHOW TABLES FROM [数据库名];USE [数据库];//选择数据库SELECT VERSION();//查看数据库版本SELECT CURRENT_DATE();//查看当前粗略时间SELECT NOW();//查看当前精确时间CREATE DATAbaseS [要创建的数据库名称];DROP DATAbaseS [要删除的数据库名称];INTEGER(SIZE) SMALLINT(SIZE) TINYINT(SIZE) //存储整数数据DECIMAL(SIZE, d) NUMERIC(SIZE, d) //存储浮点数数据CHAR(SIZE) //存储固定长度字符串VARCHAR(SIZE) //存储可变长度字符串DATE(yyyymmdd) //存储日期CREATE TABLE [表名]( [属性名] [数据类型] NOT NULL;//以后用SELECT VALUES()时,该字段非空 [属性名] [数据类型] (NULL);//NULL可写可不写 ... [属性名] [数据类型];)DESCRIBE [表名];//或者用DESC [表名];查看表结构,属性等等或SHOW COLUMNS FROM [表名];DROP TABLE [表名];//删除表ALTER TABLE ic_course RENAME course;//无法重命名库,但可以重命名表ALTER TABLE ic_course ADD [COLUMN] link varchar(100) [FIRST | AFTER [属性名]];//FIRST指定插入首列 AFTER指定插入到指定的属性名后ALTER TABLE ic_course ADD [COLUMN] ([属性名1] [数据类型], [属性名2] [数据类型], ...)//添加多列与添加单列的区别就是添加多列则不能指定列顺序ALTER TABLE ic_course DROP [COLUMN] link;//添加和删除语句中的COLUMN可加可不加,建议加上ALTER TABLE ic_course MODIFY teacher varchar(100);ALTER TABLE ic_course MODIFY teacher varchar(100) NULL; ALTER TABLE ic_course CHANGE COLUMN teacher lecture varchar(100); //将teacher列重命名为lecture,并声明数据类型为varchar(100).INSERT INTO [表名] VALUES(值1,值2,...);或INSERT INTO [表名](列1,列2..) VALUES(值1,值2,...); //也就是说第一种插入是对应所有属性插入,第二种则选择性的插入.ps:如果表中有一列比如值1的属性为AUTO_INCREMENT,即不需要我们为其插入的数据,我们可以INSERT INTO [表名] VALUES(NULL/DEFAULT, 值2, 值3...);把值1设置为NULL或DEFAULT,系统会自动插入INSERT INTO [表名] SET (列1)=值1, (列2)=值2, (列3)=值3, ..; //区别于上面两种插入,这种插入每次只能插入一条记录INSERT INTO [表名] SELECT [属性] FROM [表名] WHERE [条件]; //可以将我们查询的结果写入到数据表中ps:INSERT INTO test(age) SELECT age FROM student WHERE id > 30; //如果test后未指定age,那么在SELECT的时候也应该对应为*,而非指定一个特定属性INSERT INTO tdb_goods_cates(cates_name) SELECT goods_cate FROM tdb_goods GROUP BY goods_cate; SELECT [DISTINCT] [列1,列2,...] FROM [表名];或SELECT [DISTINCT] * FROM [表名]; //DISTINCT参数表示返回的结果唯一化(去掉重复的),该参数根据个人需要可有可无SELECT [属性1] FROM [表名] GROUP BY [属性1]; //对属性1进行分组,类似于去掉重复然后输出查询结果SELECT * FROM [表名] WHERE [条件1] AND [条件2];SELECT * FROM [表名] WHERE [条件1] OR [条件2];SELECT * FROM [表名] ORDER BY [列名]; //对某列由小到大排序输出结果SELECT * FROM [表名] ORDER BY [列名] DESC; //对某列由大到小排序输出结果SELECT [列名] FROM [表名] WHERE [列] [运算符] [值];ps:SELECT * FROM course WHERE course_name = 'GNOME';运算符:= [等于]<> [不等于]> [大于]< [小于]>= [大于等于]<= [小于等于]BETWEEN [在某范围内]LIKE [搜索某种模式]DELETE FROM [表名] WHERE [列] [运算符] [值];或DELETE FROM [表名]; //删除整个表的数据UPDATE [表名] SET [列名] = [新值] WHERE [列名] = [值];ps:UPDATE course SET id = 3 WHERE course_name = 'sjjg';一般情况下WHERE后的判定条件是唯一记录的,不能说筛选出多条记录,然后多条记录的某一个数据都发生改变.比如上面这个例子实际上不合理,因为可能一个数据库中有不同老师的sjjg,所以一般表中的id是唯一确认的,就是用来放在WHERE语句中