首页数据库数据库基础操作(sql数据库的基本操作)

数据库基础操作(sql数据库的基本操作)

编程之家2023-10-1798次浏览

各位老铁们好,相信很多人对数据库基础操作都不是特别的了解,因此呢,今天就来为大家分享下关于数据库基础操作以及sql数据库的基本操作的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

数据库基础操作(sql数据库的基本操作)

SQL数据库常用命令及语法举例

创建表:

create table表名

(

id char(5) NOT NULL,

name VARCHAR(20) NOT NULL,

dept_name VARCHAR(20) NOT NULL,

数据库基础操作(sql数据库的基本操作)

salary NUMERIC(8,2),

PRIMARY KEY(id)

);

/* primary key==主键等价于唯一(UNIQUE)且非空(NOT NULL)因为 Mysql里面的自增列,必须要依赖一个主键或者唯一的键。

*/

插入元组:

数据库基础操作(sql数据库的基本操作)

insert into表名 values(每个属性对应的值);

例如:

insert into xinbiao values(001,'niuniu',math,2345.1);

如果无法添加出现1366错误,则可能是MySQL配置问题

只要找到my.ini文件并查找sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"这句话,将双引号前面{STRICT_TRANS_TABLES,}删除,改成sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",重启一下mysql后即可。前者很严格,不允许向数据库插入空值,所以就会有Value后面那个单引号。

删除所有元组:

delete from表名;

删除表:

drop table表名;

删除了表,进行select查询时会出现表名无效的错误。

属性操作

添加属性:

alter table表名 add新属性数据类型,新属性数据类型,...;

例:alter table xinbiao add shuxing1 varchar(20),shuxing2 varchar(20);

删除属性:

alter table表名 drop属性,...;

例:alter table xinbiao drop shuxing1,shuxing2;

查询语句基础结构

select对应投影

from对应笛卡尔积

where对应选择σ

含义:

(1).为from子句列出的关系产生笛卡尔积。

(2).在(1)的结果上应用where子句中指定的谓词(条件)。

(3).对于(2)中的元组,输出select子句中指定的属性。

select*(属性1,属性2,...)【字段名】

from关系名1,关系名2,...【表名】

where条件1 and条件2 and...;【条件】

例如:

Select id,name,salary

From xinbiao

Where salary>1000;

去重操作(distinct)

·对于一些属性来说,在某些元组中存在相同的值,有时我们需要对结果去重,得到正确答案。

Select distinct属性名【就是字段名】

From关系名【就是表名】

Where条件

例如:当我们想要查看系名时,多个老师可能位于同一个系,不去重将产生下列结果:

显然这不是我们想要的答案。我们只需要知道存在哪些系,而无需知道个数:

更名操作(as)

·优点

方便:长名字变短名字,便于书写语句。

同一关系笛卡尔积:区分属性。

对属性:

Select字段 as字段别名,...

From表名

Where条件

例:

Select name as instructor_name,salary

From xinbiao

Where salary>3500

结果如下:

对关系:

Select字段,...

From表名 as表名别名,...

Where条件

例:

Select i1.id,i2.name

From xinbiao as i1, xinbiao as i2

Where i1.id=i2.id and salary>3500

结果如下

字符串运算(like)

· SQL使用一对单引号来标示字符串,例‘math’。

·百分号(%):匹配任意子串

下划线(_):匹配任意一个字符

select字段

from表名

where字段 like'字符形式';

例:LIKE'AACC%'

以AACC开头的所有信息

显示次序(order by)

·默认升序:asc

·降序:desc

Select字段

From表名

Where条件

Order by字段升序/降序

between⋯⋯and⋯⋯

·属性值介于某个范围内

select* from xinbiao where属性名 between... and...;

select*from xinbiao where salary between 3000 and 6000;

结果如下

分组聚集(group by)

·聚集函数:平均值(avg)、最小值(min)、最大值(max)、总和(sum)、计数(count)。

·出现在select语句中但没有被聚集的属性只能是出现在group by子句中的属性。

having子句(出现group by时使用)

·有group by时,select和 having子句中出现的属性有所限制。

·任何出现在having子句中,但没有被聚集的属性必须出现在group by子句中。

正确查询:

select dept_name,avg(salary) as avg_salary from xinbiao group by dept_name having avg(salary)>3000

结果如下

集合成员资格

· in:测试元组是否是集合的成员

· not in:测试元组是否不是集合的成员

· in和 not in操作符用于枚举集合。

例:

select* from xinbiao where name not in('ai','ye','er');

结果如下

集合的比较

>some:至少比某一个要大

>all:比所有的都大。

>some、<some、>=some、<=some、<>some

>all、<all、>=all、<=all

=some等价于in,<>some并不等价于not in。

<>all等价于not in,=all不等价于in。

空关系测试(exists)

EXISTS在SQL中的作用是:检验查询是否返回数据。

·存在exists是相对于某一条元组,因而子查询中是select*。

例:查询在2009年秋季学期和2010年春季学期同时开课的所有课程

select course_id

from section as S

where semester='Fall' and year=2009 and exists(select*

from section as T

where semester='Spring' and year=2010

and S.course_id=T.course_id

);

删除某些元组

例:从instructor关系中删除与‘math’系教师有关的所有元组

delete from instructor where dept_name='math';

删除所有元组

delete from instructor;

插入一些元组

· insert into关系名 values(⋯⋯);一次只能插入一条元组。

· insert into关系名 selec查询语句可一次性插入多条。

更新元组

update表名set语句where条件;

例:只给工资低于7000元的教师涨工资。

update instructor2set salary=salary*1.05;where salary<7000;

给工资低于7000的教师涨5%,大于7000的涨3%

update instructor2set salary=case

when salary<=7000 then salary*1.05

else salary*1.03

end

数据库基本操作是什么

关系数据库上的基本操作有选择、投影、连接和除法,选择建立一个含有与原始关系相同列数的新表,但是行只包括那些满足某些特写标准的原始关系行

投影操作指定将被选择的列,因而形成的表只含有原始表列的一个子集

如果在投影操作删除的列中有两个行不同,那么将只有一个记录被转入新的关系

连接操作从两个或多个表中组合信息

两个表中的公用字段用作组合记录的基础字段

在公用字段中具有相等值的记录被连接在结果关系内

sql数据库的基本操作

命令行

1、显示当前数据库服务器中的数据库列表:mysql> SHOW DATABASES;

2、建立数据库:mysql> CREATE DATABASE库名;

3、建立数据表:mysql> USE库名;mysql> CREATE TABLE表名(字段名 VARCHAR(20),字段名 CHAR(1));

4、删除数据库:mysql> DROP DATABASE库名;

5、删除数据表:mysql> DROP TABLE表名;

6、将表中记录清空:mysql> DELETE FROM表名;

7、往表中插入记录:mysql> INSERT INTO表名 VALUES("hyq","M");

8、更新表中数据:mysql-> UPDATE表名 SET字段名1='a',字段名2='b' WHERE字段名3='c';

9、用文本方式将数据装入数据表中:mysql> load data local infile"d:/mysql.txt" into table表名;

10、导入.sql文件命令:mysql> USE数据库名;mysql> source d:/mysql.sql;

11、命令行修改root密码:mysql> update mysql.user set password=password('新密码') where user='root';mysql> flush privileges;

12.修改密码的三种方法:mysql>update user set password=password('123456') where user='joy_pen';mysql>flush privileges;mysql>set password for'joy_oen'=password('123456');mysql>grant usage on*.* to'joy_pen' identified by'123456';

1、创建数据库

命令:create database<数据库名>例如:建立一个名为xhkdb的数据库mysql> create database xhkdb;

2、显示所有的数据库

命令:show databases(注意:最后有个s)mysql> show databases;

3、删除数据库

命令:drop database<数据库名>例如:删除名为 xhkdb的数据库mysql> drop database xhkdb;

4、连接数据库

命令: use<数据库名>例如:如果xhkdb数据库存在,尝试存取它:mysql> use xhkdb;屏幕提示:Database changed

5、当前选择(连接)的数据库mysql> select database();

6、当前数据库包含的表信息:mysql> show tables;(注意:最后有个s)

三、表操作,操作之前应连接某个数据库

1、建表

命令:create table<表名>(<字段名1><类型1> [,..<字段名n><类型n>]);

mysql> create table MyClass(

> id int(4) not null primary key auto_increment,

> name char(20) not null,

> sex int(4) not null default''0'',

> degree double(16,2));

2、获取表结构

命令: desc表名,或者show columns from表名

mysql>DESCRIBE MyClass

mysql> desc MyClass;

mysql> show columns from MyClass;

3、删除表

命令:drop table<表名>

例如:删除表名为 MyClass的表 mysql> drop table MyClass;

4、插入数据

命令:insert into<表名> [(<字段名1>[,..<字段名n> ])] values(值1)[,(值n)]

例如,往表 MyClass中插入二条记录,这二条记录表示:编号为1的名为Tom的成绩为96.45,编号为2的名为Joan的成绩为82.99,编号为3的名为Wang的成绩为96.5.

mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99),(2,'Wang', 96.59);

5、查询表中的数据

1)、查询所有行

命令: select<字段1,字段2,...> from<表名> where<表达式>

例如:查看表 MyClass中所有数据 mysql> select* from MyClass;

2)、查询前几行数据

例如:查看表 MyClass中前2行数据

mysql> select* from MyClass order by id limit 0,2;

6、删除表中数据

命令:delete from表名 where表达式

例如:删除表 MyClass中编号为1的记录

mysql> delete from MyClass where id=1;

7、修改表中数据:update表名 set字段=新值,… where条件

mysql> update MyClass set name=''Mary'' where id=1;

8、在表中增加字段:

命令:alter table表名 add字段类型其他;

例如:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0

mysql> alter table MyClass add passtest int(4) default''0''

9、更改表名:

命令:rename table原表名 to新表名;

例如:在表MyClass名字更改为YouClass

mysql> rename table MyClass to YouClass;

更新字段内容

update表名 set字段名=新内容

update表名 set字段名= replace(字段名,''旧内容'',''新内容'');

如果你还想了解更多这方面的信息,记得收藏关注本站。

学数据库有什么用 数据库这门功课学了有什么作用啊!互动录播主机?触屏式互动录播平台主要应用什么地方