搜档网
当前位置:搜档网 › 数据库增删改查

数据库增删改查

数据库增删改查
数据库增删改查

02.连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码]

03.创建数据库:create database [库名]

04.显示所有数据库: show databases;

05.打开数据库:use [库名]

06.当前选择的库状态:SELECT DATABASE();

07.创建数据表:CREATE TABLE [表名]([字段名] [字段类型]([字段要求]) [字段参数], ......);

08.显示数据表字段:describe 表名;

09.当前库数据表结构:show tables;

10.更改表格

11. ALTER TABLE [表名] ADD COLUMN [字段名] DATATYPE

12. 说明:增加一个栏位(没有删除某个栏位的语法。

13. ALTER TABLE [表名] ADD PRIMARY KEY ([字段名])

14. 说明:更改表得的定义把某个栏位设为主键。

15. ALTER TABLE [表名] DROP PRIMARY KEY ([字段名])

16. 说明:把主键的定义删除。

17.显示当前表字段:show columns from tablename;

18.删库:drop database [库名];

19.删表:drop table [表名];

20.数据操作

21.添加:INSERT INTO [表名] VALUES('','',......顺序排列的数据);

22.查询: SELECT * FROM [表名] WHERE ([条件]);

23.建立索引:CREATE INDEX [索引文件名] ON [表名] ([字段名]);

24.删除:DELETE FROM [表名] WHERE ([条件]);

25.修改:UPDATE [表名] SET [修改内容如name = 'Mary'] WHERE [条件];

26.

27.导入外部数据文本:

28.1.执行外部的sql脚本

29.当前数据库上执行:mysql < input.sql

30.指定数据库上执行:mysql [表名] < input.sql

31.2.数据传入命令load data local infile "[文件名]" into table [表名];

32.备份数据库:(dos下)

33.mysqldump --opt school>school.bbb

34.

35.

36.

37.提示:常用MySQL命令以";"结束,有少量特殊命令不能加";"结束,如备份数据库

38.一. 增删改查操作

39.

40.============================================================================ =====

41.1. 增:

42.insert into 表名values(0,'测试');

43.注:如上语句,表结构中有自动增长的列,也必须为其指定一个值,通常为0

44.insert into 表名(id,name) values(0,'尹当')--同上

45.2.删数据:

46.delete from 表名;

47.delete from 表名where id=1;

48.删除结构:

49.删数据库:drop database 数据库名;

50.删除表:drop table 表名;

51.删除表中的列:alter table 表名drop column 列名;

52.3. 改:

53.修改所有:updata 表名set 列名='新的值,非数字加单引号' ;

54.带条件的修改:updata 表名set 列名='新的值,非数字加单引号' where id=6;

55.4.查:

56.查询所有的数据:select *from 表名;

57.带条件的查询:

58.select *from 表名where 列名=条件值;

59.Select * from 表名where 列名not like(like)'字符值'

60.分页查询:select *from 表名limit 每页数量offset 偏移量;

61.

62.

63.

64.二.操作命令

65.

66.============================================================================ =====

67.1. 查看数据库信息:show databases;

68.2.查看表信息:show tables;

69.3.查看表的结构:desc 表名

70.4. 新建数据库:create database 数据库名;

71.5.操作指定数据库:use 数据库名;

72.6.新建数据表(先use 操作库);

73.create table 表名(规范为tbl_表名)

74.(

75.id int auto_increment primary key,( auto_increment为自动增长)

https://www.sodocs.net/doc/1817565567.html, varchar(20) primary key

77.)ENGINE=InnoDB DEFAULT CHARSET=gbk//支持事务和设置表的编码

78.6.2添加主外键:

79.alter table 外表名add constraint FK_名称foreign key(外列) references 主表名(主列)

80.如现有两表主表tbl_order 子表tbl_orderdetail 现子表tbl_orderdetail的oid列引用了主表tbl_order的oid列

81.则命令如下:

82.alter table tbl_orderdetail add constraint FK_oid foreign key(oid) references tbl_order(oid)

83.7.导出表,备份到一个文件中,如.txt,.doc

84.cmd命令窗口:mysqldump -u 用户名-p 需要备份的数据库名>备份的文件的保存路径和文件名

85.注:如指定的文件不存在,mysql会自动添加一个文件,此命令不能加分号结尾(文件没

有备份建数据库操作)

86.8.导入数据库备份文件:

87.(1).在mysql命令窗口

88.(2).新建一个要导入的数据库(因为备份中没有备份建数据库操作)

89.(3).use 当前库名

90.(4).source 备份的文件的保存路径和文件名(此命令不能加分号结尾)

91.

92.

93.三:系统操作

94.

95.============================================================================ =====

96.1. 打开服务:net start mysql(mysql为配置时,可自定名称)

97.2.关闭服务:net stop mysql

98.3.从cmd 模式进入mysql

99.(1).mysql -u 用户名-p 回车>输入正确密码>进入欢迎

100.(2).mysql -h IP(本机localhost) -u 用户名-p 回车>输入正确密码>进入欢迎

101.3.退出:exit/quit;

102.4.修改用户密码:mysqladmin -u 用户名-p password 新密码

103.5.处理中文乱码:

104.(1).在D:\MySQL \MySQL Server 5.0\data的操作数据为文件中查看是否为以下:

105.default-character-set=gbk

106.default-collation=gbk_chinese_ci

107.

108.(2).查看安装文件默认编码:D:\MySQL\MySQL Server 5.0>my>default-character-set=gbk 109.

110.=========================================================================== ======

111.

112.

113.启动:net start mySql;

114.进入:mysql -u root -p/mysql -h localhost -u root -p databaseName;

115.列出数据库:show databases;

116.选择数据库:use databaseName;

117.列出表格:show tables;

118.显示表格列的属性:show columns from tableName;

119.建立数据库:source fileName.txt;

120.匹配字符:可以用通配符_代表任何一个字符,%代表任何字符串;

121.增加一个字段:alter table tabelName add column fieldName dateType;

122.增加多个字段:alter table tabelName add column fieldName1 dateType,add columns fieldName2 dateType;

123.多行命令输入:注意不能将单词断开;当插入或更改数据时,不能将字段的字符串展开到多行里,否则硬回车将被储存到数据中;

124.增加一个管理员帐户:grant all on *.* to user@localhost identified by "password";

125.每条语句输入完毕后要在末尾填加分号';',或者填加'\g'也可以;

126.查询时间:select now();

127.查询当前用户:select user();

128.查询数据库版本:select version();

129.查询当前使用的数据库:select database();

130.

131.1、删除student_course数据库中的students数据表:

132.rm -f student_course/students.*

133.

134.2、备份数据库:(将数据库test备份)

135.mysqldump -u root -p test>c:\test.txt

136.备份表格:(备份test数据库下的mytable表格)

137.mysqldump -u root -p test mytable>c:\test.txt

138.将备份数据导入到数据库:(导回test数据库)

139.mysql -u root -p test

140.

141.3、创建临时表:(建立临时表zengchao)

142.create temporary table zengchao(name varchar(10));

143.

144.4、创建表是先判断表是否存在

145.create table if not exists students(……);

146.

147.5、从已经有的表中复制表的结构

148.create table table2 select * from table1 where 1<>1;

149.

150.6、复制表

151.create table table2 select * from table1;

152.

153.7、对表重新命名

154.alter table table1 rename as table2;

155.

156.8、修改列的类型

157.alter table table1 modify id int unsigned;//修改列id的类型为int unsigned

158.alter table table1 change id sid int unsigned;//修改列id的名字为sid,而且把属性修改为int unsigned

159.

160.9、创建索引

161.alter table table1 add index ind_id (id);

162.create index ind_id on table1 (id);

163.create unique index ind_id on table1 (id);//建立唯一性索引

164.

165.10、删除索引

166.drop index idx_id on table1;

167.alter table table1 drop index ind_id;

168.

169.11、联合字符或者多个列(将列id与":"和列name和"="连接)

170.select concat(id,':',name,'=') from students;

171.

172.12、limit(选出10到20条)<第一个记录集的编号是0>

173.select * from students order by id limit 9,10;

174.

175.13、MySQL不支持的功能

176.事务,视图,外键和引用完整性,存储过程和触发器

177.

178.

179.14、MySQL会使用索引的操作符号

180.<,<=,>=,>,=,between,in,不带%或者_开头的like

181.

182.15、使用索引的缺点

183.1)减慢增删改数据的速度;

184.2)占用磁盘空间;

185.3)增加查询优化器的负担;

186.当查询优化器生成执行计划时,会考虑索引,太多的索引会给查询优化器增加工作量,导致无法选择最优的查询方案;

187.

188.16、分析索引效率

189.方法:在一般的SQL语句前加上explain;

190.分析结果的含义:

191.1)table:表名;

192.2)type:连接的类型,(ALL/Range/Ref)。其中ref是最理想的;

193.3)possible_keys:查询可以利用的索引名;

194.4)key:实际使用的索引;

195.5)key_len:索引中被使用部分的长度(字节);

196.6)ref:显示列名字或者"const"(不明白什么意思);

197.7)rows:显示MySQL认为在找到正确结果之前必须扫描的行数;

198.8)extra:MySQL的建议;

199.

200.17、使用较短的定长列

201.1)尽可能使用较短的数据类型;

202.2)尽可能使用定长数据类型;

203.a)用char代替varchar,固定长度的数据处理比变长的快些;

204.b)对于频繁修改的表,磁盘容易形成碎片,从而影响数据库的整体性能;

205.c)万一出现数据表崩溃,使用固定长度数据行的表更容易重新构造。使用固定长度的数据行,每个记录的开始位置都是固定记录长度的倍数,可以很容易被检测到,但是使用可变长度的数据行就不一定了;

206.d)对于MyISAM类型的数据表,虽然转换成固定长度的数据列可以提高性能,但是占据的空间也大;

207.

208.18、使用not null和enum

209.尽量将列定义为not null,这样可使数据的出来更快,所需的空间更少,而且在查询时,MySQL不需要检查是否存在特例,即null值,从而优化查询;

210.如果一列只含有有限数目的特定值,如性别,是否有效或者入学年份等,在这种情况下应该考虑将其转换为enum列的值,MySQL处理的更快,因为所有的enum值在系统内都是以标识数值来表示的;

211.

212.19、使用optimize table

213.对于经常修改的表,容易产生碎片,使在查询数据库时必须读取更多的磁盘块,降低查询性能。具有可变长的表都存在磁盘碎片问题,这个问题对blob数据类型更为突出,因为其尺寸变化非常大。可以通过使用optimize table来整理碎片,保证数据库性能不下降,优化那些受碎片影响的数据表。optimize table可以用于MyISAM和BDB类型的数据表。实际上任何碎片整理方法都是用mysqldump来转存数据表,然后使用转存后的文件并重新建数据表;

214.

215.20、使用procedure analyse()

216.可以使用procedure analyse()显示最佳类型的建议,使用很简单,在select语句后面加上procedure analyse()就可以了;例如:

217.select * from students procedure analyse();

218.select * from students procedure analyse(16,256);

219.第二条语句要求procedure analyse()不要建议含有多于16个值,或者含有多于256字节的enum类型,如果没有限制,输出可能会很长;

220.

221.21、使用查询缓存

222.1)查询缓存的工作方式:

223.第一次执行某条select语句时,服务器记住该查询的文本内容和查询结果,存储在缓存中,下次碰到这个语句时,直接从缓存中返回结果;当更新数据表后,该数据表的任何缓存查询都变成无效的,并且会被丢弃。

224.2)配置缓存参数:

225.变量:query_cache _type,查询缓存的操作模式。有3中模式,0:不缓存;1:缓存查询,除非与select sql_no_cache开头;2:根据需要只缓存那些以select sql_cache开头的查询;query_cache_size:设置查询缓存的最大结果集的大小,比这个值大的不会被缓存。226.

227.22、调整硬件

228.1)在机器上装更多的内存;

229.2)增加更快的硬盘以减少I/O等待时间;

230.寻道时间是决定性能的主要因素,逐字地移动磁头是最慢的,一旦磁头定位,从磁道读则很快;

231.3)在不同的物理硬盘设备上重新分配磁盘活动;

232.如果可能,应将最繁忙的数据库存放在不同的物理设备上,这跟使用同一物理设备的不同分区是不同的,因为它们将争用相同的物理资源(磁头)。

233.

234.

235.

237.

238.

239.

240.一、连接MYSQL。

241.

242.格式:mysql -h主机地址-u用户名-p用户密码

243.

244.1、例1:连接到本机上的MYSQL。

245.

246.首先在打开DOS窗口,然后进入目录mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>

247.

248.2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:

249.

250.mysql -h110.110.110.110 -uroot -pabcd123

251.

252.(注:u与root可以不用加空格,其它也一样)

253.

254.3、退出MYSQL命令:exit (回车)

255.

256.二、修改密码。

257.

258.格式:mysqladmin -u用户名-p旧密码password 新密码

259.

260.1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令261.

262.mysqladmin -uroot -password ab12

263.

264.注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

265.

266.2、例2:再将root的密码改为djg345。

267.

268.mysqladmin -uroot -pab12 password djg345

269.

270.三、增加新用户。(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)

271.

272.格式:grant select on 数据库.* to 用户名@登录主机identified by \"密码\"

273.

274.例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:

276.grant select,insert,update,delete on *.* to test1@\"%\" Identified by \"abc\";

277.

278.但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。

279.

280.例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。

281.

282.grant select,insert,update,delete on mydb.* to test2@localhost identified by \"abc\"; 283.

284.如果你不想test2有密码,可以再打一个命令将密码消掉。

285.

286.grant select,insert,update,delete on mydb.* to test2@localhost identified by \"\";

287.

288.在上篇我们讲了登录、增加用户、密码更改等问题。下篇我们来看看MYSQL中有关数据库方面的操作。注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。

289.

290.一、操作技巧

291.

292.1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。

293.

294.2、你可以使用光标上下键调出以前的命令。但以前我用过的一个MYSQL旧版本不支持。我现在用的是mysql- 3.23.27-beta-win。

295.

296.二、显示命令

297.

298.1、显示数据库列表。

299.

300.show databases;

301.

302.刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。

303.

304.2、显示库中的数据表:

305.

https://www.sodocs.net/doc/1817565567.html,e mysql;//打开库,学过FOXBASE的一定不会陌生吧

307.

308.show tables;

309.

310.3、显示数据表的结构:

311.

312.describe 表名;

313.

314.4、建库:

315.

316.create database 库名;

317.

318.5、建表:

319.

https://www.sodocs.net/doc/1817565567.html,e 库名;

321.

322.create table 表名(字段设定列表);

323.

324.6、删库和删表:

325.

326.drop database 库名;

327.

328.drop table 表名;

329.

330.7、将表中记录清空:

331.

332.delete from 表名;

333.

334.8、显示表中的记录:

335.

336.select * from 表名;

337.

338.三、一个建库和建表以及插入数据的实例

339.

340.drop database if exists school; //如果存在SCHOOL则删除341.

342.create database school; //建立库SCHOOL

343.

https://www.sodocs.net/doc/1817565567.html,e school; //打开库SCHOOL

345.

346.create table teacher //建立表TEACHER

347.

348.(

349.

350.id int(3) auto_increment not null primary key,

351.

https://www.sodocs.net/doc/1817565567.html, char(10) not null,

353.

354.address varchar(50) default ’深圳’,

355.

356.year date

357.

358.); //建表结束

359.

360.//以下为插入字段

361.

362.insert into teacher values(’’,’glchengang’,’深圳一中’,’1976-10-10’);

363.

364.insert into teacher values(’’,’jack’,’深圳一中’,’1975-12-23’);

365.

366.注:在建表中(1)将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key(2)将NAME设为长度为10的字符字段(3)将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar 和char有什么区别呢,只有等以后的文章再说了。(4)将YEAR设为日期字段。

367.

368.如果你在mysql提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:\\下,并在DOS状态进入目录\\mysql\\bin,然后键入以下命令:

369.

370.mysql -uroot -p密码< c:\\school.sql

371.

372.如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。

373.

374.四、将文本数据转到数据库中

375.

376.1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\\n来代替.

377.

378.例:

379.

380.3 rose 深圳二中1976-10-10

381.

382.4 mike 深圳一中1975-12-23

383.

384.2、数据传入命令load data local infile \"文件名\" into table 表名;

385.

386.注意:你最好将文件复制到\\mysql\\bin目录下,并且要先用use命令打表所在的库。387.

388.五、备份数据库:(命令在DOS的\\mysql\\bin目录下执行)

389.mysqldump --opt school>school.bbb

390.

391.注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。

392.

393.

394.

395.mysql命令行常用命令

396.

397.第一招、mysql服务的启动和停止

https://www.sodocs.net/doc/1817565567.html, stop mysql

https://www.sodocs.net/doc/1817565567.html, start mysql

400.第二招、登陆mysql

401.语法如下:mysql -u用户名-p用户密码

402.键入命令mysql -uroot -p,回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:

403.mysql>

404.注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

405.第三招、增加新用户

406.格式:grant 权限on 数据库.* to 用户名@登录主机identified by "密码"

407.如,增加一个用户user1密码为password1,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:408.grant select,insert,update,delete on *.* to user1@localhost Identified by "password1"; 409.如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。

410.如果你不想user1有密码,可以再打一个命令将密码去掉。

411.grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

412.第四招:操作数据库

413.登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。414.1、显示数据库列表。

415.show databases;

416.缺省有两个数据库:mysql和test。mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。

417.2、显示库中的数据表:

https://www.sodocs.net/doc/1817565567.html,e mysql;

419.show tables;

420.3、显示数据表的结构:

421.describe 表名;

422.4、建库与删库:

423.create database 库名;

424.drop database 库名;

425.5、建表:

https://www.sodocs.net/doc/1817565567.html,e 库名;

427.create table 表名(字段列表);

428.drop table 表名;

429.6、清空表中记录:

430.delete from 表名;

431.7、显示表中的记录:

432.select * from 表名;

433.第五招、导出和导入数据

434.1. 导出数据:

435.mysqldump --opt test > mysql.test

436.即将数据库test数据库导出到mysql.test文件,后者是一个文本文件

437.如:mysqldump -u root -p123456 --databases dbname > mysql.dbname

438.就是把数据库dbname导出到文件mysql.dbname中。

439.2. 导入数据:

440.mysqlimport -u root -p123456 < mysql.dbname。

441.不用解释了吧。

442.3. 将文本数据导入数据库:

443.文本数据的字段数据之间用tab键隔开。

https://www.sodocs.net/doc/1817565567.html,e test;

445.load data local infile "文件名" into table 表名;

446.

447.SQL常用命令使用方法:

448.

449.(1) 数据记录筛选:

450.

451.sql="select * from 数据表where 字段名=字段值order by 字段名[desc]"

452.

453.sql="select * from 数据表where 字段名like '%字段值%' order by 字段名[desc]" 454.

455.sql="select top 10 * from 数据表where 字段名order by 字段名[desc]"

456.

457.sql="select * from 数据表where 字段名in ('值1','值2','值3')"

458.

459.sql="select * from 数据表where 字段名between 值1 and 值2"

460.

461.(2) 更新数据记录:

462.

463.sql="update 数据表set 字段名=字段值where 条件表达式"

464.

465.sql="update 数据表set 字段1=值1,字段2=值2 ……字段n=值n where 条件表达式" 466.

467.(3) 删除数据记录:

468.

469.sql="delete from 数据表where 条件表达式"

470.

471.sql="delete from 数据表" (将数据表所有记录删除)

472.

473.(4) 添加数据记录:

475.sql="insert into 数据表(字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"

476.

477.sql="insert into 目标数据表select * from 源数据表" (把源数据表的记录添加到目标数据表)

478.

479.(5) 数据记录统计函数:

480.

481.AVG(字段名) 得出一个表格栏平均值

482.COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计

483.MAX(字段名) 取得一个表格栏最大的值

484.MIN(字段名) 取得一个表格栏最小的值

485.SUM(字段名) 把数据栏的值相加

486.

487.引用以上函数的方法:

488.

489.sql="select sum(字段名) as 别名from 数据表where 条件表达式"

490.set rs=conn.excute(sql)

491.

492.用rs("别名") 获取统的计值,其它函数运用同上。

493.

494.(6) 数据表的建立和删除:

495.

496.CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) ……)

497.

498.例:CREATE TABLE tab01(name varchar(50),datetime default now())

499.

500.DROP TABLE 数据表名称(永久性删除一个数据表)

501.

502.

503.

504.select * from test.text where 1 *表示所有栏目test指数据库名text指表名where指条件505.Select remark as r id,uid from test.text where 指id uid 2栏显示as 就是给栏目命名506.select * from test.text where id>4 指ID大于4的都显示出来

507.select * from test.text where id<>4 指ID 不等于4的都出来

508.select * from test.text where id=1 指ID等于1的出来

509.select * from test.text where id in(1,3,5) 指找出ID为1 3 5的not in()则相反

510.select * from test.text where uid like "%王%" 指UID里只要带王字的都出来%王表示什么王,王%表示王什么。

511.select * from test.text where remark like "%学%" 指remark里带学的都出来

512.select * from test.text where id between 1 and 10 and uid like "%王%"表示ID 1-10 并且UID带王字的出来

513.select * from test.text where id not between 1 and 4 指ID不在1-4里面的出来

514.(1 and 2 表示满足1且满足2 1 or 2 表示满足1和满足2 )and or可以连接很多

515.select * from test.text group by remark 显示列出remark有多少类别如图↓有5类group by 就是分组命令

516.

517.select * from test.text order by regdate asc 把regdate 按从小到大排列

518.ASC不打就是默认从小到大DESC表示从大到小如order desc

519.select * from test.text order by regdate asc,id desc 这样就查询出日期从小到大然后在满足日期的排列后ID从大到小排列

520.select * from test.text limit 0,5 表示取5条记录如果是3,6 那就是第4-第9条记录被取出如图↓

521.如过只写一个6那就等于0,6

522.select * from test.text group by remark order by regdate limit 6 先分组再排序LIMIT放最后这是语法不能颠倒。

523.select count(id) from test.text count()表示查询有多少条信息这样根据表显示出10条524.select max(regdate) from test.text max() 查询最大值只能针对数字包括日期根据表显示出2008-10-22 14:41:30

525.select min(regdate)from test.text min() 查询最小值只能针对数字包括日期根据表显示出2008-10-07 13:21:32

526.select avg(id) from test.text avg() 查询平均值也只针对数字包括日期显示出5.5 如算平均分数

527.select sum(id) from test.text sum() 查询累计值数字包括日期显示出55 1+2+3+。。10=55 如算总分数

528.insert 插入语句

529.insert into `text`(`id`,`uid`,`regdate`,`remark`)values(null,'ken',now(),'学生') 其中null就是没有now()就是时间日期自动生成

530.字段的类型要设计好。特别注意!

531.

532.

533.

534.

535.Update 更改语句

536.Update 表名set 字段=值where 条件LIMIT(可省略)

537.update test.text set uid='kenchen' where id=11 意思是把ID是11的UID 改成kenchen 538.

539.Delete 删除语句

540.Delete from 表命where limit

541.Delete from text where id=3 意思是把ID=3的信息条删除!

542.

543.mysql 字段类型说明- -

544.

545.

546.MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。概述有意简化,更详细的说明应该考虑到有关特定

列类型的附加信息,例如你能为其指定值的允许格式。

547.

548.由MySQL支持的列类型列在下面。下列代码字母用于描述中:

549.

550.M

551.指出最大的显示尺寸。最大的合法的显示尺寸是255 。

552.D

553.适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大可能的值是30,但是应该不大于M-2。

554.方括号(“[”和“]”)指出可选的类型修饰符的部分。

555.

556.注意,如果你指定一个了为ZEROFILL,MySQL将为该列自动地增加UNSIGNED属性。557.

558.TINYINT[(M)] [UNSIGNED] [ZEROFILL]

559.一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。

560.

561.

562.SMALLINT[(M)] [UNSIGNED] [ZEROFILL]

563.一个小整数。有符号的范围是-32768到32767,无符号的范围是0到65535。

564.

565.MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]

566.一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。567.

568.INT[(M)] [UNSIGNED] [ZEROFILL]

569.一个正常大小整数。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。

570.

571.INTEGER[(M)] [UNSIGNED] [ZEROFILL]

572.这是INT的一个同义词。

573.BIGINT[(M)] [UNSIGNED] [ZEROFILL]

574.一个大整数。有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到

575.18446744073709551615。注意,所有算术运算用有符号的BIGINT或DOUBLE值完成,因此你不应该使用大于9223372036854775807(63位)的有符号大整数,除了位函数!注意,当两个参数是INTEGER值时,-、+和*将使用BIGINT运算!这意味着如果你乘2个大整数(或来自于返回整数的函数),如果结果大于9223372036854775807,你可以得到意外的结果。一个浮点数字,不能是无符号的,对一个单精度浮点数,其精度可以是<=24,对一个双精度浮点数,是在25 和53之间,这些类型如FLOAT和DOUBLE类型马上在下面描述。FLOAT(X)有对应的FLOAT和DOUBLE相同的范围,但是显示尺寸和小数位数是未定义的。在MySQL3.23中,这是一个真正的浮点值。在更早的MySQL版本中,FLOAT(precision)总是有2位小数。该句法为了ODBC兼容性而提供。

576.

577.FLOAT[(M,D)] [ZEROFILL]

578.一个小(单精密)浮点数字。不能无符号。允许的值是-3.402823466E+38到

-1.175494351E-38,0 和1.175494351E-38到3.402823466E+38。M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24 的一个参数表示一个单精密浮点数字。

579.DOUBLE[(M,D)] [ZEROFILL]

580.一个正常大小(双精密)浮点数字。不能无符号。允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到1.7976931348623157E+308。M是显示宽度而D是小数位数。没有一个参数的DOUBLE或FLOAT(X)(25 < = X < = 53)代表一个双精密浮点数字。

581.DOUBLE PRECISION[(M,D)] [ZEROFILL]

582.REAL[(M,D)] [ZEROFILL]

583.这些是DOUBLE同义词。

584.DECIMAL[(M[,D])] [ZEROFILL]

585.一个未压缩(unpack)的浮点数字。不能无符号。行为如同一个CHAR列:“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符。小数点,并且对于负数,“-”符号不在M中计算。如果D是0,值将没有小数点或小数部分。DECIMAL值的最大范围与DOUBLE 相同,但是对一个给定的DECIMAL列,实际的范围可以通过M和D的选择被限制。如果D 被省略,它被设置为0。如果M被省掉,它被设置为10。注意,在MySQL3.22里,M参数包括符号和小数点。

586.

587.

588.NUMERIC(M,D) [ZEROFILL]

589.这是DECIMAL的一个同义词。DATE

590.一个日期。支持的范围是'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列。

591.DATETIME

592.一个日期和时间组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL 以'YYYY-MM-DD HH:MM:SS'格式来显示DATETIME值,但是允许你使用字符串或数字把值赋给DATETIME的列。

593.TIMESTAMP[(M)]

594.一个时间戳记。范围是'1970-01-01 00:00:00'到2037年的某时。MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式来显示TIMESTAMP 值,取决于是否M是14(或省略)、12、8或6,但是允许你使用字符串或数字把值赋给TIMESTAMP列。一个TIMESTAMP列对于记录一个INSERT或UPDATE操作的日期和时间是有用的,因为如果你不自己给它赋值,它自动地被设置为最近操作的日期和时间。你以可以通过赋给它一个NULL值设置它为当前的日期和时间。

595.TIME

596.一个时间。范围是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式来显示TIME值,但是允许你使用字符串或数字把值赋给TIME列。

597.YEAR[(2|4)]

598.一个2或4位数字格式的年(缺省是4位)。允许的值是1901到2155,和0000(4位年格式),如果你使用2位,1970-2069( 70-69)。MySQL以YYYY格式来显示YEAR值,但是允许你把使用字符串或数字值赋给YEAR列。(YEAR类型在MySQL3.22中是新类型。)

599.CHAR(M) [BINARY]

600.一个定长字符串,当存储时,总是是用空格填满右边到指定的长度。M的范围是1 ~255个字符。当值被检索时,空格尾部被删除。CHAR值根据缺省字符集以大小写不区分的方式

排序和比较,除非给出BINARY关键词。NATIONAL CHAR(短形式NCHAR)是ANSI SQL的方式来定义CHAR列应该使用缺省字符集。这是MySQL的缺省。CHAR是CHARACTER的一个缩写。

601.[NATIONAL] VARCHAR(M) [BINARY]

602.一个变长字符串。注意:当值被存储时,尾部的空格被删除(这不同于ANSI SQL规范)。M的范围是1 ~255个字符。VARCHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词值。VARCHAR是CHARACTER VARYING一个缩写。

603.TINYBLOB

604.TINYTEXT

605.一个BLOB或TEXT列,最大长度为255(2^8-1)个字符。

606.BLOB

607.TEXT

608.一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符。

609.MEDIUMBLOB

610.MEDIUMTEXT

611.一个BLOB或TEXT列,最大长度为16777215(2^24-1)个字符。

612.LONGBLOB

613.LONGTEXT

614.一个BLOB或TEXT列,最大长度为4294967295(2^32-1)个字符。

615.ENUM('value1','value2',...)

616.枚举。一个仅有一个值的字符串对象,这个值式选自与值列表'value1'、'value2', ...,或NULL。一个ENUM最多能有65535不同的值。

617.SET('value1','value2',...)

618.一个集合。能有零个或多个值的一个字符串对象,其中每一个必须从值列表'value1', 'value2', ...选出。一个SET最多能有64个成员。

本文来自CSDN博客,转载请标明出处:https://www.sodocs.net/doc/1817565567.html,/xycit/archive/2010/09/01/5854694.aspx

数据库的增删改查(精)

学习收藏数据库增删改查 --查询信息系和计算机系的学生,并按学生所在系和学号排序。select sno,sname,Sdept from Student where Sdept='CS'OR Sdept='IS' order by Sdept,sno ASC --查询学生表中最小的年龄。 select MIN(sage from student --查询课程名中包含“数据”的课程名。 select cno,cname from course where Cname like'%数据%' --查询先行课程为空值的课程号、课程名及学分 select cno,cname,ccredit from Course where Cpno is null --查询李勇选修的数据库课程的成绩 select grade from SC where Sno=(select Sno from Student where Sname='李勇'and Cno=(select Cno from Course where cname='数据库' --查询平均成绩分以上的学生的学号 select distinct sno from SC scx where (select AVG(Grade from SC scy

where scy.sno=scx.Sno>85 --求计算机系没有选修数据库课程的学生姓名 select sname from Student where Sno not in(select Sno from SC where Cno in(select Cno from Course where Sname='数据库'and Sdept='IS' --求至少选修了学号为S1所选修的全部课程的学生学号 select distinct sno from SC scx where not exists(select*from SC scy where scy.Sno='20021522'and not exists(select* from sc scz where scz.sno=scx.sno and https://www.sodocs.net/doc/1817565567.html,o=https://www.sodocs.net/doc/1817565567.html,o --求各系的系的学生人数的,并将结果按学生人数的降序排序 select Sdept,COUNT(sno from Student group by Sdept order by Sdept ASC --查询选修了数学课程并且成绩高于该门课程平均分的学生学号和成绩 select sno,grade from SC scx where Grade>=(select AVG(Grade from SC scy where Cno=(select Cno from Course where Cname='数学'and Cno=(select Cno from Course

数据库增删改查基本语句

数据库增删改查基本语句 adoquery1.Fielddefs[1].Name; 字段名 dbgrid1.columns[0].width:=10; dbgrid的字段宽度 adoquery1.Fields[i].DataType=ftString 字段类型 update jb_spzl set kp_item_name=upper(kp_item_name) 修改数据库表中某一列为大写select * from master.dbo.sysobjects ,jm_https://www.sodocs.net/doc/1817565567.html,ers 多库查询 adotable1.sort:='字段名称ASC' adotable排序 SQL常用语句一览 sp_password null,'新密码','sa' 修改数据库密码 (1)数据记录筛选: sql="select * from 数据表where 字段名=字段值orderby 字段名[desc] " sql="select * from 数据表where 字段名like '%字段值%' orderby 字段名[desc]" sql="select top10 * from 数据表where 字段名orderby 字段名[desc]" sql="select * from 数据表where 字段名in('值1','值2','值3')" sql="select * from 数据表where 字段名between 值1 and 值2" (2)更新数据记录: sql="update 数据表set 字段名=字段值where 条件表达式" sql="update 数据表set 字段1=值1,字段2=值2……字段n=值n where 条件表达式" (3)删除数据记录: sql="delete from 数据表where 条件表达式" sql="delete from 数据表"(将数据表所有记录删除) (4)添加数据记录: sql="insert into 数据表(字段1,字段2,字段3…) values(值1,值2,值3…)" sql="insert into 目标数据表select * from 源数据表"(把源数据表的记录添加到目标数据表)

SQL数据库中的增删改查总结1

一、增:有2种方法 1.使用insert插入单行数据: 语法:insert [into]<表名> [列名] values <列值> 例:insert into Strdents (姓名,性别,出生日期) values ('邢金聪','男','1990/6/15') 注意:如果省略表名,将依次插入所有列 2.使用insert,select语句将现有表中的数据添加到已有的新表中 语法:insert into <已有的新表> <列名> select <原表列名> from <原表名> 例:insert into addressList ('姓名','地址','电子邮件')selectname,address,email from Strdents 注意:查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致 二、删:有2中方法 1.使用delete删除数据某些数据 语法:delete from <表名> [where <删除条件>] 例:delete from awhere name='邢金聪'(删除表a中列值为邢金聪的行) 注意:删除整行不是删除单个字段,所以在delete后面不能出现字段名 2.使用truncate table 删除整个表的数据

语法:truncate table<表名> 例:truncate table addressList 注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能 用于有外建约束引用的表 三、改 使用update更新修改数据 语法:update <表名> set <列名=更新值> [where <更新条件>] 例:truncate table addressList 注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能 用于有外建约束引用的表 四、查 1.普通查询 语法:select <列名> from <表名> [where <查询条件表达试>] [order by<排序的列 名>[asc或desc]] 1).查询所有数据行和列 例:select * from a 说明:查询a表中所有行和 2).查询部分行列--条件查询 例:select i,j,kfrom a where f=5 说明:查询表a中f=5的所有行,并显示i,j,k3列

数据库基本知识(自己整理,初学者可以看一下,基于某MySql)

数据库

1常见数据库 1.1MySql : 甲骨文 1.2Oracle: 甲骨文 1.3SQL Server: 微软 1.4Sybase: 赛尔斯 1.5DB2: IBM 2MySql基础知识 2.1关系结构数据模型数据库 2.2SQL(Structured Query Language)结构化查询语言2.2.1DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等 操作数据库 CREATE DATABASE [IF NOT EXISTS]mydb1 USE mydb1 DROP DATABASE [IF NOT EXISTS] mydb1

ALTER DATABASE mydb1 CHARACTER SET utf8 操作表 插入表 CREATE TABLE stu( sid CHAR(6), sname VARCHAR(20), age INT, gender VARCHAR(10) ); 更改表 ALTER TABLE t_user ADD (student varcher(20)) ALTER TABLE t_user MODIFY gender CHAR(20) ALTER TABLE t_user CHANGE gender VARCHER(20) ALTER TABLE t_user REMANE genderTO genders ALTER TABLE t_user DROP gender 删除表 DROP TABLE t_user 2.2.2DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据) 插入数据 INSERT INTO t_user VALUES() INSERT INTO 表名 VALUES(值1,值2,…)

JAVA数据库基本操作增删改查(精)

JAVA 数据库基本操作, 增删改查 package mypack; JAVA 数据库基本操作, 增删改查 import java.sql.Connection; import java.sql.ResultSet; import java.util.ArrayList; public class DbOper {//查询多行记录public ArrayList select({Connection conn =null; ResultSet rs =null; try {import java.sql.PreparedStatement; import java.sql.SQLException; PreparedStatement pstmt =null; ArrayList al =new ArrayList(; conn =DbConn.getConn(;pstmt =conn.prepareStatement(“select *from titles ”; rs =pstmt.executeQuery(;while (rs.next({Titles t =new Titles(;t.setTitleid(rs.getString(1;t.setTitle(rs.getString(2;al.add(t;}}catch (SQLExceptione { e.printStackTrace(;}finally {try {//TODO 自动生成catch 块if (rs!=null rs.close(;if (pstmt!=nullpstmt.close(;if (conn!=nullconn.close(;}catch (SQLExceptione { e.printStackTrace(;}}//TODO 自动生成catch 块 return al; }//查询单个对象public Titles selectOne(Stringtitleid{Connection conn =null; ResultSet rs =null; try {PreparedStatement pstmt =null; Titles t =new Titles(;

数据库增删改查

02.连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 03.创建数据库:create database [库名] 04.显示所有数据库: show databases; 05.打开数据库:use [库名] 06.当前选择的库状态:SELECT DATABASE(); 07.创建数据表:CREATE TABLE [表名]([字段名] [字段类型]([字段要求]) [字段参数], ......); 08.显示数据表字段:describe 表名; 09.当前库数据表结构:show tables; 10.更改表格 11. ALTER TABLE [表名] ADD COLUMN [字段名] DATATYPE 12. 说明:增加一个栏位(没有删除某个栏位的语法。 13. ALTER TABLE [表名] ADD PRIMARY KEY ([字段名]) 14. 说明:更改表得的定义把某个栏位设为主键。 15. ALTER TABLE [表名] DROP PRIMARY KEY ([字段名]) 16. 说明:把主键的定义删除。 17.显示当前表字段:show columns from tablename; 18.删库:drop database [库名]; 19.删表:drop table [表名]; 20.数据操作 21.添加:INSERT INTO [表名] VALUES('','',......顺序排列的数据); 22.查询: SELECT * FROM [表名] WHERE ([条件]); 23.建立索引:CREATE INDEX [索引文件名] ON [表名] ([字段名]); 24.删除:DELETE FROM [表名] WHERE ([条件]); 25.修改:UPDATE [表名] SET [修改内容如name = 'Mary'] WHERE [条件]; 26. 27.导入外部数据文本: 28.1.执行外部的sql脚本 29.当前数据库上执行:mysql < input.sql 30.指定数据库上执行:mysql [表名] < input.sql 31.2.数据传入命令load data local infile "[文件名]" into table [表名]; 32.备份数据库:(dos下) 33.mysqldump --opt school>school.bbb 34. 35. 36. 37.提示:常用MySQL命令以";"结束,有少量特殊命令不能加";"结束,如备份数据库 38.一. 增删改查操作 39. 40.============================================================================ ===== 41.1. 增: 42.insert into 表名values(0,'测试'); 43.注:如上语句,表结构中有自动增长的列,也必须为其指定一个值,通常为0 44.insert into 表名(id,name) values(0,'尹当')--同上

SQL常用增删改查语句

SQLSQL常用增删改查语句 作者:hiker 一.Insert 插入语句 1.Insert into 表名(列名)values (对应列名值) //插入一行. 2.Insert into 新表名(列名) Select (列名) 旧表名 3.Select 旧表名.字段… Into 新表名from 旧表名 4.Select identity ( 数据类型,标识种子,标识增长量) as 列名 Into新表名 From 旧表名 5.Insert 表名(列名) Select (对应列名值) union Select (对应列名值) union Select (对应列名值) 二.Update 更新语句 1.Update 表名set 列名=’更新值’ where 更新条件 三.delete 删除语句 1.delete from 表名where 删除条件 2.truncate table 表名//删除表中所有行 四.select 基本查询语句 1.select 列名from 表名where 查询条件 order by 排序的列名asc或desc升/降 2.select 列名as 别名from 表名where 查询条件 3.select 列名from 表名where 列名is null //查询空值 4.select 列名, ‘常量值’ as 别名from 表名//查询时定义输出一列常量值 5.select top 5 列名from 表名//查询前5行 6.select top 5 percent 列名from 表名//查询前百分之5的数据行 五.select 函数查询语句 1.select LEN(Class_Name)from Class //查询class_Name字符串长度 2.select upper(Class_Name)from Class //查询class_Name并转换为大写 3.ltrim和rtrim //清除字符串左右空格 4.select REPLACE(card_No,'0','9')from CardRecord//修改列中字符串中的字符 列名字符串中0修改为9 5.select STUFF(Card_No,2,3,'8888')from CardRecord 列名字符串中第2个开始删除3个字符,再从第二个开始插入8888字符串 6.select GETDATE()//显示系统日期

mysql增删改查基本语句

mysql 增、删、改、查基本语句 数据库的链接和选择及编码 $link=mysql_connect("localhost","root","123456") or die("数据库连接失败".mysql_error()); $sel=mysql_select_db("login",$link) or die("数据库选择失败".mysql_error()); mysql_query("set names 'utf8'"); 添加数据 $link=mysql_connect("localhost","root","123456") or die("数据库连接失败".mysql_error()); $sel=mysql_select_db("login",$link) or die("数据库选择失败".mysql_error()); mysql_query("set names 'utf8'",$sel); $add="insert into title(title,content,username,time) values('$title','$content','$username',$time)"; $query=mysql_query($add); if($query){ echo "add sucess"; echo ""; } else echo "add false"; 删除数据 $link=mysql_connect("localhost","root","123456") or die("数据库连接失败".mysql_error()); $sel=mysql_select_db("login",$link) or die("数据库选择失败".mysql_error()); mysql_query("set names 'utf8'"); $id=$_GET['id']; $delete="delete from title where id='$id'"; $query=mysql_query($delete); if($query){ echo "delete sucess!"; echo ""; } else echo "delete false"; 改数据 $link=mysql_connect("localhost","root","123456") or die("数据库连接失败".mysql_error()); $sel=mysql_select_db("login",$link) or die("数据库选择失败".mysql_error()); mysql_query("set names 'utf8'",$sel);

数据库增删改查操作(2)(精)

数据库增删改查操作(2) 一、案例描述 程序运行的时候加载的界面如图1,包括添加、删除、修改和查询所有数据按钮,并实现相应功能。 图1 图2 单击“添加”按钮,插入一条记录,效果如图2;单击“查询全部”按钮,查询得到全部记录,并将结果打印出来,如图3;单击“删除”按钮,删除指定记录,如图4;单击“修改”按钮,修改指定记录,如图5。 图3

图4 图5 二、知识链接 (4)ContentValues类 ● ContentValues类和Hashtable类较为相似,它用于存储一些键值对,可以被ContentResolver类处理,但是它存储的键值对当中的键是一个String类型,而值都是基本类型。ContentValues类作为一个重要的参数在SQLiteDatabase中的insert,update等方法中使用。 ● ContentValues类有3种构造方法,格式分别如下: √ ContentValues(:使用默认的初始大小来创建一个空集。 √ ContentValues(int size):使用指定的初始大小size值来创建一个空集。 √ ContentValues(ContentValues from):复制给定的集合from,用于创建一组集合数值。 ● ContentValues类的常用方法介绍如下:

√ void clear(:清空集合中的所有数值。 √ boolean containsKey(String key):如果集合中包含了指定的关键字key,则返回true,否则返回false。 √ Object get(String key):返回关键字key对应的数值,返回数值类型为Object,通常还需要进行强制类型转换。 √ void put(String key,Integer value):将一个值加入到集合中,其中参数key表示集合中的关键字;参数value表示要添加的数据。ContentValues类还有很多put方法,主要的区别是第二个参数为其他数据类型,例如:put(String key,Byte value)、put(String key,Float value)、put(String key,Short value)、put(String key,byte[] value) √ void remove(String key):将某个关键字key的数值从集合中删除。 √ int size (:返回集合中数值的个数。 三、案例实现 (1)MainActivity.java中添加数据的方法 /** * 添加一条记录 */ public void add(View view { Random random=new Random(; SQLiteDatabase db=personHelper.getWritableDatabase(; //db.execSQL("insert into info(name,phone values(?,?",new Object[]{"张三"+random.nextInt(100,"186********"}; ContentValues values=new ContentValues(; values.put("name", "张三"+random.nextInt(100; values.put("phone", "186775411"+random.nextInt(100;

(完整word版)SQL常用的增删改查语句、视屏笔记

SQL:结构化查询语言,是国际化标准组织采纳的标准数据库语言 作用:数据库管理员可以用利用次语言操作数据库系统,即:SQL是一种能够被数据库系统读懂的操作语言。 T—SQL是微软公司针对SQL Server这种关系数据库所定义的一种SQL语言,用户可以完成Server数据库中的所有操作。 SQL的分类: (1):数据定义语言,DDL 用来创建数据库和数据库中的各种对象 数据库中的对象包括:表、视图、索引、存储过程、触发器 DDL常用的命令包括:create、alter、drop (2):数据操纵语言,DML 可以完成对数据库中数据的查询、更新、删除、插入的功能 DML常用的命令包括:select、update、delete、insert (3)数据控制语言,DCL DCL常用的命令包括:grant、revoke、deny (4)数据类型 1、数字数据类型 a、整型数据类型:bigint、int、smallint、tinyint b、浮点数据类型:float、real c、固定精度数据类型:decimal、numeric d、货币数据类型:money、smallmoney 将数据格式转换成字符串方法:STR(ID);---ID为数据类型,STR(ID)为字符串 2、字符数据类型:varchar、char、text、nchar、nvarchar、ntext 区别char和varchar数据类型: char数据类型是存放固定长度的字符 Varchar数据类型是存放动态长度的字符 char(14),实际放入到数据库的字符长度为14个字符,如果实际存储的长度小于定义的长度,那么数据库会在次字符串后面加上3个空格 1、insert语句: insert语句是属于SQL语言中的DML 作用:为表插入数据 你向一个表中插入一条新记录,但有一个字段没有提供数据。在这种情况下,有下面的四种可能: 1、如果该字段有一个缺省值(默认值),该值会被使用。 2、如果该字段可以接受空值,而且没有缺省值,则会被插入空值。 3、如果该字段不能接受空值,而且没有缺省值,就会出现错误。你会收到错误信息: The column in table mytable may not be null. 4、如果该字段是一个标识字段,那么它会自动产生一个新值。当你向一个有标识字段的表中插入新记录时,只要忽略该字段,标识字段会给自己赋一个新值。 使用INSERT语句可向文本型字段中插入数据。但是,如果你需要输入很长的字符串,你应该使用WRITETEXT语句。 语法:insert into 表名(列名1,列名2,…..) values(值1,值2,….) 注意:(列名1,列名2,…..)可以不写,这样的话,插入的values(值1,值2,….)中的值必须包含表中的所有列,不然会报错。

数据库语句增删改查

mysql语句用法,添加、修改、删除字段一,连接MySQL 二,MySQL管理与授权 三,数据库简单操作 四, 数据库备份 五,后记 一,连接MySQL 格式:mysql -h 远程主机地址 -u 用户名 -p 回车 输入密码进入: mysql -u root -p 回车 Enter password: ,输入密码就可以进入 mysql> 进入了 退出命令:>exit 或者ctrl+D 二,MySQL管理与授权 1.修改密码:

格式:mysqladmin -u 用户名 -p 旧密码 password 新密码 2.增加新用户: >grant create,select,update....(授予相关的操作权限) ->on 数据库.* -> to 用户名@登录主机 identified by '密码' 操作实例: 给root用户添加密码: # mysqladmin -u root password 52netseek 因为开始root没有密码,所以-p旧密码一项可以省略. 登陆测试: # mysql -u root -p 回车 输入密码,成功登陆. 将原有的mysql管理登陆密码52netseek改为52china. # mysqladmin -u root -p 52netseek password '52china' 创建数据库添加用户并授予相应的权限: mysql> create database phpbb; Query OK, 1 row affected (0.02 sec)

mysql> use phpbb; Database changed mysql> grant create,select,update,insert,delete,alter -> on phpbb.* -> to phpbbroot@localhost identified by '52netseek'; Query OK, 0 rows affected (0.00 sec) 授予所有的权限: >grant all privileges >on bbs.* >to bbsroot@localhost identified by '52netseek' 回收权限: revoke create,select,update,insert,delete,alter on phpbb.* from phpbbroot@localhost identified by '52netseek'; 完全将phpbbroot这个用户删除: >use mysql >delete from user where user='phpbbroot' and host='localhost'; >flush privileges; 刷新数据库 三,数据库简单操作

Mysql数据库·增删改查

Mysql Oracle(甲骨文) 大型数据库 MySql 中小型数据库 DB2 SqlServer ..... Mysql的发展: 瑞典的Mysql AB公司 2008年Sun公司(JAVA) 2009年Oracle 收购sun公司 IBM 69亿美元sun Eclipse(日蚀) Oracle 74亿美元sun Mysql的简单使用: 1.登陆mysql数据库 win+r --->cmd mysql -uroot -p1234 修改密码:mysql> set password for rootlocalhost = password('1234'); 此处可能存在异常情况原因:a、未配置环境变量b、Mysql服务未开启(net start mysql) 2.对库的操作 a.查看所有的库 show databases; 系统自带库: information_schema mysql test b.创建库 create database day01;(不指定编码,跟随数据库系统编码) create database db1 default character set gbk;(指定编码) 查看创建库的语句: show create database 库名. 修改库的编码: alter database day01 default character set utf8; c.删除库 drop database 库名.

drop database day01; 注意: 系统自带的三个库不能删除. d.使用库 use db1; 3.对表的操作 表:二维关系表有行有列的关系表. 记录:表中的一行数据. 字段:表中的一列. 常用的字段类型: 字符串类型: varchar(长度) 、char 数值类型: int(整数) float double(小数) 日期类型: date a.创建表 员工表:员工号性别年龄职位薪水入职日期 create table emp( empno varchar(4), name varchar(30), sex varchar(5), age int(3), job varchar(30), salary int(5), hiredate date ); b.查看所有的表 show tables; c.查看建表语句 show create table 表名. d.查看表结构 desc 表名. e.往表中插入数据 e1.给表中所有的字段插入数据 insert into emp (empno,name,sex,age,job,salary,hiredate) values ('1001','zhangsan','m',22,'developer',10000,'2015-12-21'); 简写形式: insert into emp values ('1002','lisi','m',23,'test',8000,'2015-10-10'); e2.给表中部分字段插入数据 insert into emp(empno,name,sex,age) values ('1003','cuihua','w',18);

SQL单词及数据库增删改查

数据库(Database, DB) 数据库管理系统(Database Management System, DBMS) 数据库管理员(Database Administrator, DBA) 数据库系统(Database System, DBS) SQL:结构化查询语言(structured Query Language)DB: 数据库(database) DBA:数据库管理员(database administrator)DBMS:数据库管理系统(database management system) Toa d:癞蛤蟆,一款开发数据库的可视化软件 Roo t: 根 Re la tion shi p:关系 U ser:用户 Ta ble:表 P ro ce dure:存储过程 Fun c tion:函数 Tri gger:触发器 Vie w:视图 In de x:索引 C rea te:创建 Dro p:删除 Ta ble:表 En gine:引擎 Co lu mn:列 P ri ma ry:主要的 Primary key:主键 Na me:列名 Au to:自动的 In cre men t:可增长的 Au to_In cre men t: 自动增长 Da ta Ty pe:数据类型 Not null:非空 Co mmen t:注释 Cha ra c ter se t:字符集 Co lle c tion:采集(对比方法) Fo reig n:外部的

Fo reig n key:外键 SQL 数据化查询语言 DML数据操作语言(Data Manipulation Language)DCL数据控制语言(Data Control Language)DQL: 数据查询语言(Data Query Language)DDL: 数据定义语言(Data Definition Language) in ser t:插入(增) de le te:删除(删) up da te:修改(改) se le c t:查询(查) in to:到哪里。。。 fro m:从哪里来。。。 va lue:值 u nio n:拼接 wh ere:在。。。。。 se t:设置 trun ca te:截断 im por t:导入 ex por t:导出 Or der:顺序 Or der by:排序 Re p la ce:替换 Now:现在 Cei ling:天花板 F loo r:地板 Si gn:符号 Con ver t:转换 Di s tin c t:独特的(去重复的) Li mi t:限制 li ke:像。。。一样 be t wee n 。。。and:在。。。。和。。。。之间 su m:和 avg:平均值

sql与mysql可视化增删改查

MYSQL与SQL可视化增,删,改 1.建立表格: 属性: public JTable table; public DefaultTableModel dftm; public String[] columnNames= new String[] { "序号", "用户名", "密码"}; // 定义数组表示表格标题 dftm = new DefaultTableModel(null, columnNames); /*for (int i = 0; i < 10; i++) { Object[] content = { 1, 2, 3 }; dftm.addRow(content);// 增加行 }*/ initTable(dftm); JTable table = new JTable(dftm);// 根据TableModel显示内容 JScrollPane src = new JScrollPane(table); //给表格增加滚动条 src.setBounds(50, 150, 500, 200); //设置滚动条位置与大小 contentPane.add(src); 2.“修改用户”按钮的代码: JButton rewamp = new JButton("\u4FEE\u6539\u7528\u6237"); rewamp.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int id=Integer.parseInt(txtId.getText()); String name=txtName.getText();//取得用户名文本框的值 String pwd=txtPwd.getText();//取得用户密码文本框的值 String sqlUpdate="UPDATE userlist set name='" + name+"', password='"+pwd+"' where Id="+id; DBComm dbco=new DBComm(); dbco.openConnection(); try { dbco.executeUpdate(sqlUpdate);

简单的连接数据库增删改查(1)

package com.suqin.Tank2; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Vector; import javax.swing.JScrollPane; import javax.swing.table.AbstractTableModel; public class Mxstu extends AbstractTableModel { // 集合 Vector rowDate, columnnNames; // 连接数据库 Connection conn; // 执行sql 语句 PreparedStatement pst; // 集合级 ResultSet rs;

// 驱动程序 public String Driver = "com.mysql.jdbc.Driver"; // 连接地址mysql数据库名称public String Url = "jdbc:mysql://127.0.0.1:3306/mysql"; // 用户名 public String name = "root"; // 用户密码 public String password = "admin"; //sql语句 String sql; public void Showsql(String sql) { if (sql=="") { sql="select * from students"; } columnnNames = new Vector(); // 设置列 columnnNames.add("学号"); columnnNames.add("姓名"); columnnNames.add("性别"); columnnNames.add("年龄"); columnnNames.add("籍贯"); columnnNames.add("系别"); // 设置行内容 rowDate = new Vector(); // 夹在驱动程序 try { Class.forName(Driver); conn = DriverManager.getConnection(Url, name, password); // 执行语句 //sql = ("select * from students"); pst = conn.prepareStatement(sql); // 得到结果集合 rs = pst.executeQuery(); // 得到记录 while (rs.next()) { // 设置行 Vector hang = new Vector(); hang.add(rs.getInt(1)); hang.add(rs.getString(2)); hang.add(rs.getString(3)); hang.add(rs.getInt(4)); hang.add(rs.getString(5));

数据库基础知识点

1. 数据库的作用 持久化:永久得保存数据。 数据挖掘:通过以有信息,发掘出有价值的信息。 冗余:数据的重复出现,(插入,删除,修改)带来一些异常。查询时可以提高查询的效率。 2. 创建数据库,创建表,确定表中字段的类型 数据文件:.mdf(main data file主要数据文件) .ldf(log data file 日志数据文件) 数据完整性:保证数据库的数据是客观真实的,没有错误的。 数据库登录: 方式一:window身份验证,如果你具有登录操作系统的权限,你就可以登录登录数据库。 方式二:sql server身份验证,能够登录操作系统,还需要知道登录名和密码。 用户名sa 数据库管理者,他是数据库的最大权限拥有者 常用数据类型: 整型:bigint int smallint tinyint 货币:money smallmoney 时间:datetime smalldatetime 位:bit (0,1) 字符串:char varchar text(一个字符表示8位) Nchar nvarchar ntext(一个字符表示16位) 差异:1. 字符串类型需要加长度。Char(4) text,ntext不需要加长度 2. char varchar的区别 Char是固定长度的,char(8) 存储了’abc’会在’abc’之前加5个空格 Varchar 是可变长的varchar(20) 存储了’abc’,长度就是3 3. 如何分离附加数据库 4. 对数据库的增删改查(操作的是表中的数据) T_sql:sql+sql server对标准的加强 Sql当中不区分大小写。 增(insert):insert into表名values(字段1的值,字段2的值……) insert into表名(字段1,字段2)values(字段1的值,字段2的值……)—插入部分数据,其他的字段可以不插入,是因为允许为空

相关主题