MySQL(1)-对表及数据的基本操作

xiaoxiao2021-02-28  114

Centos6.8下的MySQL安装方法:

yum install mysql-server mysql mysql-devel

这是一种较为简单的安装方法,但是安装的版本不是最新的,如果要安装最新版本,可以去MySQL官方安装,这里提供地址:https://www.mysql.com/downloads/,安装完毕后可以使用命令rpm -qi mysql-server 查看安装的MySQL版本,在linux下启动关闭MySQL可以使用命令:service mysqld start/stop 或 /etc/init.d/mysqld start/stop,首次连接到MySQL服务器时,需要设置MySQL的登陆密码,即比如:mysqladmin -u root password ‘guochen’ (其中-u表示user),如果不想要每次开启都得手动启动 service mysqld start,那么chkconfig mysqld on即可


/***************************连接MySQL:****************************/ /*本地连接*/ mysql -uroot -p //以root用户验证密码的方式登陆(-p表示password) /*远程连接*/ mysql -h [ip] -uroot -p /***************************退出MySQL:****************************/ quit

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语句中
转载请注明原文地址: https://www.6miu.com/read-39962.html

最新回复(0)